manpagez: man pages & more
man ctext(n)
Home | html | info | man
ctext(n)         Ctext a text widget with highlighting support        ctext(n)



______________________________________________________________________________


NAME

       ctext - Ctext a text widget with highlighting support


SYNOPSIS

       package require Tk

       package require ctext  ?3.2?

       ctext pathName ?options?

       ::ctext::addHighlightClass pathName class color keywordlist

       ::ctext::addHighlightClassWithOnlyCharStart pathName class color char

       ::ctext::addHighlightClassForSpecialChars    pathName    class    color
       charstring

       ::ctext::addHighlightClassForRegexp pathName class color pattern

       ::ctext::clearHighlightClasses pathName

       ::ctext::getHighlightClasses pathName

       ::ctext::deleteHighlightClass pathName class

       ::ctext::enableComments enable

       ::ctext::disableComments enable

       pathName highlight startIndex endIndex

       pathName fastdelete index1 ?index2?

       pathName fastinsert

       pathName copy

       pathName cut

       pathName paste

       pathName append

       pathName configure option value ?...?

_________________________________________________________________


DESCRIPTION

       The ctext package provides the ctext widget which is an  enhanced  text
       widget with support for configurable syntax highlighting and some extra
       commands.

       Ctext overloads the text widget and provides new commands, named  high-
       light,  copy,  paste,cut,  append,  and edit.  It also provides several
       commands that allow you to define classes.  Each class corresponds to a
       tag in the widget.


COMMANDS

       ctext pathName ?options?
              Creates and configures a ctext widget.



HIGHLIGHTING

       Highlighting is controlled with text widget tags, that are called high-
       light classes.  The class is a tag name and can be configured like  any
       text  widget  tag.   Four types of highlight classes are supported. All
       highlight classes are automatically used by the highlight method of the
       widget.

       ::ctext::addHighlightClass pathName class color keywordlist
              Add  a  highlighting  class  class to the ctext widget pathName.
              The highligthing will be done with the color color. All words in
              the keywordlist will be highlighted.

                   # highlight some tcl keywords
                   ::ctext::addHighlightClass .t tclkeywords red [list set info interp uplevel upvar]]


       ::ctext::addHighlightClassWithOnlyCharStart pathName class color char
              Add  a  highlighting  class  class to the ctext widget pathName.
              The highligthing will be done with the color  color.  All  words
              starting with char will be highlighted.

                   ::ctext::addHighlightClassWithOnlyCharStart .t vars blue \$


       ::ctext::addHighlightClassForSpecialChars    pathName    class    color
       charstring
              Add  a  highlighting  class  class to the ctext widget pathName.
              The highligthing will be done with the color color. All chars in
              charstring will be highlighted.

       ::ctext::addHighlightClassForRegexp pathName class color pattern
              Add  a  highlighting  class  class to the ctext widget pathName.
              The highligthing will be done with the  color  color.  All  text
              parts matching the regexp pattern will be highligthed.

       ::ctext::clearHighlightClasses pathName
              Remove all highlight classes from the widget pathName.

       ::ctext::getHighlightClasses pathName
              List all highlight classes for the widget pathName.

       ::ctext::deleteHighlightClass pathName class
              Delete the highlight class class from the widget pathName

       ::ctext::enableComments enable
              Enable C comment highlighting. The class for c-style comments is
              _cComment.  The C comment highlighting is disabled by default.

       ::ctext::disableComments enable
              Disable C comment highlighting.



WIDGET COMMANDS

       Each ctext widget created with the above command supports the following
       commands  and  options in addition to the standard text widget commands
       and options.

       pathName highlight startIndex endIndex
              Highlight the text between startIndex and endIndex.

       pathName fastdelete index1 ?index2?
              Delete text range without updating the  highlighting.  Arguments
              are  identical to the pathName delete command inherited from the
              standard text widget.

       pathName fastinsert
              Insert text without updating  the  highlighting.  Arguments  are
              identical  to  the  pathName  insert  command inherited from the
              standard text widget.

       pathName copy
              Call tk_textCopy for the ctext instance.

       pathName cut
              Call tk_textCut for the ctext instance.

       pathName paste
              Call tk_textPaste for the ctext instance.

       pathName append
              Append the current selection to the clipboard.

       pathName configure option value ?...?
              Set the options for the ctext widget. Each option name  must  be
              followed the new value.



WIDGET OPTIONS

       Command-Line Switch:    -linemap
       Database Name:
       Database Class:


              Creates  (-linemap 1) or deletes (-linemap 0) a line number list
              on the left of the widget. The default is to have a linemap dis-
              played.

       Command-Line Switch:    -linemapfg
       Database Name:
       Database Class:


              Changes  the foreground of the linemap.  The default is the same
              color as the main text widget.

       Command-Line Switch:    -linemapbg
       Database Name:
       Database Class:


              Changes the background of the linemap.  The default is the  same
              color as the main text widget.

       Command-Line Switch:    -linemap_select_fg
       Database Name:
       Database Class:


              Changes the selected line foreground.  The default is black.

       Command-Line Switch:    -linemap_select_bg
       Database Name:
       Database Class:


              Changes the selected line background.  The default is yellow.

       Command-Line Switch:    -linemap_mark_command
       Database Name:
       Database Class:


              Calls a procedure or command with the pathName of the ctext win-
              dow, the type which is either marked or  unmarked,  and  finally
              the line number selected.  The proc prototype is:

              proc linemark_cmd {win type line}.

              See also ctext_test_interactive.tcl

       Command-Line Switch:    -highlight
       Database Name:
       Database Class:


              Takes  a boolean value which defines whether or not to highlight
              text which is inserted or deleted.  The default is 1.

       Command-Line Switch:    -linemap_markable
       Database Name:
       Database Class:


              Takes a boolean value which specifies whether or  not  lines  in
              the linemap are markable with the mouse.  The default is 1.



EXAMPLE

                               package require Tk
                               package require ctext

                               proc main {} {
                               pack [frame .f] -fill both -expand 1
                               pack [scrollbar .f.s -command {.f.t yview}] -side right -fill y

                               pack [ctext .f.t -bg black -fg white -insertbackground yellow  -yscrollcommand {.f.s set}] -fill both -expand 1

                               ctext::addHighlightClass .f.t widgets purple  [list ctext button label text frame toplevel  scrollbar checkbutton canvas listbox menu menubar menubutton  radiobutton scale entry message tk_chooseDir tk_getSaveFile  tk_getOpenFile tk_chooseColor tk_optionMenu]

                               ctext::addHighlightClass .f.t flags orange  [list -text -command -yscrollcommand  -xscrollcommand -background -foreground -fg -bg  -highlightbackground -y -x -highlightcolor -relief -width  -height -wrap -font -fill -side -outline -style -insertwidth  -textvariable -activebackground -activeforeground -insertbackground  -anchor -orient -troughcolor -nonewline -expand -type -message  -title -offset -in -after -yscroll -xscroll -forward -regexp -count  -exact -padx -ipadx -filetypes -all -from -to -label -value -variable  -regexp -backwards -forwards -bd -pady -ipady -state -row -column  -cursor -highlightcolors -linemap -menu -tearoff -displayof -cursor  -underline -tags -tag]

                               ctext::addHighlightClass .f.t stackControl red  {proc uplevel namespace while for foreach if else}
                               ctext::addHighlightClassWithOnlyCharStart .f.t vars mediumspringgreen "\$"
                               ctext::addHighlightClass .f.t variable_funcs gold {set global variable unset}
                               ctext::addHighlightClassForSpecialChars .f.t brackets green {[]{}}
                               ctext::addHighlightClassForRegexp .f.t paths lightblue {\.[a-zA-Z0-9\_\-]+}
                               ctext::addHighlightClassForRegexp .f.t comments khaki {#[^\n\r]*}
                               .f.t fastinsert end [info body main]

                               pack [frame .f1] -fill x

                               .f.t highlight 1.0 end

                               pack [button .f1.exit -text Exit -command exit] -side left

                               pack [entry .e] -side bottom -fill x
                               .e insert end "ctext::deleteHighlightClass .f.t "
                               bind .e <Return> {eval [.e get]}
                               }
                               main


       Further examples are in the source package for ctext.


THANKS

       Kevin  Kenny,  Neil  Madden,  Jeffrey Hobbs, Richard Suchenwirth, Johan
       Bengtsson,  Mac  Cody,  GA1/4nther,  Andreas   Sievers,   and   Michael
       Schlenker.


SEE ALSO

       re_syntax(n), text(n)


KEYWORDS

       syntax highlighting, text, widget


COPYRIGHT

       Copyright (c) George Peter Staplin <GeorgePS@XMission.com>




ctext                                 3.2                             ctext(n)

Mac OS X 10.8 - Generated Wed Sep 5 19:39:05 CDT 2012
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.