alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

jEdit example source code file (tcl.xml)

This example jEdit source code file (tcl.xml) is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - jEdit tags/keywords

begin, delegate, end, keyword1, keyword1, keyword2, keyword2, keyword3, keyword3, operator, seq, tcl, type, type

The jEdit tcl.xml source code

<?xml version="1.0"?>

<!DOCTYPE MODE SYSTEM "xmode.dtd">

<!-- Tcl mode by Michael Jacobson.
     cplusplus and pascal modes used as reference.
    2006/10/20 Jean-Francois Larvoire:
     - Fixed comments detection: Only # at the beginning of Tcl commands are comments!
     - Quoted strings can span multiple lines.
     - Added recursive in-string substituted command and variable analysis.
     - Added numerous missing tcl keywords and variables up to version 8.4.14.
     - Removed $ on global variable keywords, as they're often used with $::.
     - Added Expect keywords, as KEYWORD2. (send was already in tk as KEYWORD2)
     - Avoid colouring substituted variables that are homonyms of a keyword.
     - Highlight hexadecimal numbers too.
    2006/10/23 Jean-Francois Larvoire:
     - Strings and blocks only begin at word start.
     - Updated {# comment detection to manage the whole {} block. This catches
       all { and }, and makes it unnecessary to define them as KEYWORDs.
     - Bug fix: Do not delegate content evaluation for ${} scalar variables.
    2009/02/10: Albert Davidson Chou - added lineComment property for TCL mode (2119958)

    Limitations:
     - Unbalanced quotes or brackets within braces, such as in regular expressions,
  will confuse the analysis. Workaround: If possible, use a \ to escape the
  unbalanced character. Else add a ;# comment with a closing " or ].
    Known bugs:
     - Continuation line detection does not work. Same bug as espace chars below.
     - ; highlighting as an OPERATOR does not work.
    Known bugs (Were there before, and I failed to fix them):
     - \c escape colouring does not work for escapes embedded in words.
           I attemted numerous workarounds using spans and regexps, but they
     all seem to fail to detect anything beginning with a \. And using
     NO_ESCAPE="TRUE" does not help.
     - {} within quoted strings should not affect indentation. -->

<MODE>
  <PROPS>
    <PROPERTY NAME="indentOpenBrackets" VALUE="{" />
    <PROPERTY NAME="indentCloseBrackets" VALUE="}" />
    <PROPERTY NAME="lineUpClosingBracket" VALUE="true" />
    <PROPERTY NAME="lineComment" VALUE="#" />
  </PROPS>

  <RULES IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE"
    DIGIT_RE="0x\p{XDigit}+|\d+">

    <!-- Continuation line. Processed before anything else by Tcl. (Does not work)-->
    <EOL_SPAN_REGEXP TYPE="OPERATOR" HASH_CHAR="\">\\$

    <!-- Comments after a ; command separator -->
    <!-- Note: The ; isn't bolded as other operators. Why?-->
    <EOL_SPAN_REGEXP TYPE="OPERATOR" HASH_CHAR=";" DELEGATE="TCL_COMMENT">;\s*(?=#)
    <!-- Comments at the { opening of a block -->
    <SPAN_REGEXP TYPE="OPERATOR" HASH_CHAR="{" DELEGATE="TCL_COMMENT">
      <BEGIN>\{\s*(?=#)
      <END>}
    </SPAN_REGEXP>
    <!-- Comments on a line of their own. -->
    <EOL_SPAN TYPE="COMMENT1" AT_WHITESPACE_END="TRUE">#

    <!-- Quoted strings -->
    <SPAN TYPE="LITERAL1" NO_LINE_BREAK="FALSE" AT_WORD_START="TRUE" DELEGATE="TCL_STRING">
      <BEGIN>"
      <END>"
    </SPAN>

    <!-- Avoid colouring substituted variables that are homonyms of a keyword -->
    <!-- Indexed array variable. Delegate to MAIN, as the index string is evaluated by Tcl.-->
    <SPAN_REGEXP TYPE="NULL" HASH_CHAR="$" DELEGATE="MAIN">
      <BEGIN>\$(\w|::)+\(
      <END>)
    </SPAN_REGEXP>
    <!-- General scalar variable. Do not delegate, as the ${} block content is not evalutated by Tcl. -->
    <SPAN TYPE="NULL">
      <BEGIN>${
      <END>}
    </SPAN>
    <!-- Plain scalar variable. -->
    <SEQ_REGEXP TYPE="NULL" HASH_CHAR="$">\$(\w|::)+

    <!-- Sub-block -->
    <SPAN TYPE="OPERATOR" NO_LINE_BREAK="FALSE" AT_WORD_START="TRUE" DELEGATE="MAIN">
      <BEGIN>{
      <END>}
    </SPAN>

    <!-- Sub-commands to be substituted -->
    <SPAN TYPE="OPERATOR" NO_LINE_BREAK="FALSE" DELEGATE="MAIN">
      <BEGIN>[
      <END>]
    </SPAN>

    <!-- Escaped characters -->
    <SEQ TYPE="KEYWORD3">\a
    <SEQ TYPE="KEYWORD3">\b
    <SEQ TYPE="KEYWORD3">\f
    <SEQ TYPE="KEYWORD3">\n
    <SEQ TYPE="KEYWORD3">\r
    <SEQ TYPE="KEYWORD3">\t
    <SEQ TYPE="KEYWORD3">\v

    <!-- Tcl syntax operators. -->
    <!-- Note that "{}[]" are already caught above.-->
    <!-- Delegate to main, as a new command begins after the ; -->
    <SEQ TYPE="OPERATOR" DELEGATE="MAIN">;
    <SEQ TYPE="NULL">::

    <!-- Math expression operators -->
    <SEQ TYPE="OPERATOR">=
    <SEQ TYPE="OPERATOR">!
    <SEQ TYPE="OPERATOR">>=
    <SEQ TYPE="OPERATOR"><=
    <SEQ TYPE="OPERATOR">+
    <SEQ TYPE="OPERATOR">-
    <SEQ TYPE="OPERATOR">/
    <SEQ TYPE="OPERATOR">*
    <SEQ TYPE="OPERATOR">>
    <SEQ TYPE="OPERATOR"><
    <SEQ TYPE="OPERATOR">%
    <SEQ TYPE="OPERATOR">&
    <SEQ TYPE="OPERATOR">|
    <SEQ TYPE="OPERATOR">^
    <SEQ TYPE="OPERATOR">~

    <KEYWORDS>
      <!-- Tcl keywords-->
      <KEYWORD1>append
      <KEYWORD1>array
      <KEYWORD1>concat
      <KEYWORD1>console
      <KEYWORD1>eval
      <KEYWORD1>expr
      <KEYWORD1>format
      <KEYWORD1>global
      <KEYWORD1>set
      <KEYWORD1>trace
      <KEYWORD1>unset
      <KEYWORD1>upvar
      <KEYWORD1>join
      <KEYWORD1>lappend
      <KEYWORD1>lindex
      <KEYWORD1>linsert
      <KEYWORD1>list
      <KEYWORD1>llength
      <KEYWORD1>lrange
      <KEYWORD1>lreplace
      <KEYWORD1>lsearch
      <KEYWORD1>lsort
      <KEYWORD1>split
      <KEYWORD1>scan
      <KEYWORD1>string
      <KEYWORD1>regexp
      <KEYWORD1>regsub
      <KEYWORD1>if
      <KEYWORD1>else
      <KEYWORD1>elseif
      <KEYWORD1>switch
      <KEYWORD1>for
      <KEYWORD1>foreach
      <KEYWORD1>while
      <KEYWORD1>break
      <KEYWORD1>continue
      <KEYWORD1>proc
      <KEYWORD1>return
      <KEYWORD1>source
      <KEYWORD1>unknown
      <KEYWORD1>uplevel
      <KEYWORD1>cd
      <KEYWORD1>close
      <KEYWORD1>eof
      <KEYWORD1>file
      <KEYWORD1>flush
      <KEYWORD1>gets
      <KEYWORD1>glob
      <KEYWORD1>open
      <KEYWORD1>read
      <KEYWORD1>puts
      <KEYWORD1>pwd
      <KEYWORD1>seek
      <KEYWORD1>tell
      <KEYWORD1>catch
      <KEYWORD1>error
      <KEYWORD1>exec
      <KEYWORD1>pid
      <KEYWORD1>after
      <KEYWORD1>time
      <KEYWORD1>exit
      <KEYWORD1>history
      <KEYWORD1>rename
      <KEYWORD1>info
      <!-- expr keywords-->
      <KEYWORD1>ceil
      <KEYWORD1>floor
      <KEYWORD1>round
      <KEYWORD1>incr
      <KEYWORD1>abs
      <KEYWORD1>acos
      <KEYWORD1>cos
      <KEYWORD1>cosh
      <KEYWORD1>asin
      <KEYWORD1>sin
      <KEYWORD1>sinh
      <KEYWORD1>atan
      <KEYWORD1>atan2
      <KEYWORD1>tan
      <KEYWORD1>tanh
      <KEYWORD1>log
      <KEYWORD1>log10
      <KEYWORD1>fmod
      <KEYWORD1>pow
      <KEYWORD1>hypot
      <KEYWORD1>sqrt
      <KEYWORD1>double
      <KEYWORD1>int
      <!-- New Tcl keywords up to tcl 8.4.14 -->
      <KEYWORD1>bgerror
      <KEYWORD1>binary
      <KEYWORD1>clock
      <KEYWORD1>dde
      <KEYWORD1>encoding
      <KEYWORD1>fblocked
      <KEYWORD1>fconfigure
      <KEYWORD1>fcopy
      <KEYWORD1>fileevent
      <KEYWORD1>filename
      <KEYWORD1>http
      <KEYWORD1>interp
      <KEYWORD1>load
      <KEYWORD1>lset
      <KEYWORD1>memory
      <KEYWORD1>msgcat
      <KEYWORD1>namespace
      <KEYWORD1>package
      <KEYWORD1>pkg::create
      <KEYWORD1>pkg_mkIndex
      <KEYWORD1>registry
      <KEYWORD1>resource
      <KEYWORD1>socket
      <KEYWORD1>subst
      <KEYWORD1>update
      <KEYWORD1>variable
      <KEYWORD1>vwait
      <!-- Standard library of Tcl interpretor procedures -->
      <KEYWORD1>auto_execok
      <KEYWORD1>auto_import
      <KEYWORD1>auto_load
      <KEYWORD1>auto_mkindex
      <KEYWORD1>auto_mkindex_old
      <KEYWORD1>auto_qualify
      <KEYWORD1>auto_reset
      <KEYWORD1>parray
      <KEYWORD1>tcl_endOfWord
      <KEYWORD1>tcl_findLibrary
      <KEYWORD1>tcl_startOfNextWord
      <KEYWORD1>tcl_startOfPreviousWord
      <KEYWORD1>tcl_wordBreakAfter
      <KEYWORD1>tcl_wordBreakBefore

      <!-- Tk keywords -->
      <KEYWORD2>bind
      <KEYWORD2>button
      <KEYWORD2>canvas
      <KEYWORD2>checkbutton
      <KEYWORD2>destroy
      <KEYWORD2>entry
      <KEYWORD2>focus
      <KEYWORD2>frame
      <KEYWORD2>grab
      <KEYWORD2>image
      <KEYWORD2>label
      <KEYWORD2>listbox
      <KEYWORD2>lower
      <KEYWORD2>menu
      <KEYWORD2>menubutton
      <KEYWORD2>message
      <KEYWORD2>option
      <KEYWORD2>pack
      <KEYWORD2>placer
      <KEYWORD2>radiobutton
      <KEYWORD2>raise
      <KEYWORD2>scale
      <KEYWORD2>scrollbar
      <KEYWORD2>selection
      <KEYWORD2>send
      <KEYWORD2>text
      <KEYWORD2>tk
      <KEYWORD2>tkerror
      <KEYWORD2>tkwait
      <KEYWORD2>toplevel
      <KEYWORD2>update
      <KEYWORD2>winfo
      <KEYWORD2>wm

      <!-- Expect keywords. Using KEYWORD2 as send is already one -->
      <!-- KEYWORD2 close -->
      <KEYWORD2>debug
      <KEYWORD2>disconnect
      <!-- KEYWORD2 exit -->
      <KEYWORD2>exp_continue
      <KEYWORD2>exp_internal
      <KEYWORD2>exp_open
      <KEYWORD2>exp_pid
      <KEYWORD2>exp_version
      <KEYWORD2>expect
      <KEYWORD2>expect_after
      <KEYWORD2>expect_background
      <KEYWORD2>expect_before
      <KEYWORD2>expect_tty
      <KEYWORD2>expect_user
      <KEYWORD2>fork
      <KEYWORD2>inter_return
      <KEYWORD2>interact
      <KEYWORD2>interpreter
      <KEYWORD2>log_file
      <KEYWORD2>log_user
      <KEYWORD2>match_max
      <KEYWORD2>overlay
      <KEYWORD2>parity
      <KEYWORD2>promptl
      <KEYWORD2>prompt2
      <KEYWORD2>remove_nulls
      <!-- KEYWORD2 send -->
      <KEYWORD2>send_error 
      <KEYWORD2>send_log
      <KEYWORD2>send_tty
      <KEYWORD2>send_user
      <KEYWORD2>sleep
      <KEYWORD2>spawn
      <KEYWORD2>strace
      <KEYWORD2>stty
      <KEYWORD2>system
      <KEYWORD2>timestamp
      <KEYWORD2>trap
      <KEYWORD2>wait
      <!-- Arguments to expect commands-->
      <KEYWORD3>full_buffer
      <KEYWORD3>timeout
      <!-- KEYWORD3 eof-->

      <!-- Global variables-->
      <KEYWORD3>argv0
      <KEYWORD3>argv
      <KEYWORD3>argc
      <KEYWORD3>tk_version
      <KEYWORD3>tk_library
      <KEYWORD3>tk_strictMotif
      <!-- New global variables up to tcl 8.4.14 -->
      <KEYWORD3>env
      <KEYWORD3>errorCode
      <KEYWORD3>errorInfo
      <KEYWORD3>geometry
      <KEYWORD3>tcl_library
      <KEYWORD3>tcl_patchLevel
      <KEYWORD3>tcl_pkgPath
      <KEYWORD3>tcl_platform
      <KEYWORD3>tcl_precision
      <KEYWORD3>tcl_rcFileName
      <KEYWORD3>tcl_rcRsrcName
      <KEYWORD3>tcl_traceCompile
      <KEYWORD3>tcl_traceExec
      <KEYWORD3>tcl_wordchars
      <KEYWORD3>tcl_nonwordchars
      <KEYWORD3>tcl_version
      <KEYWORD3>tcl_interactive

      <!-- Common arguments to tcl and Tk keywords -->
      <KEYWORD3>exact
      <KEYWORD3>all
      <KEYWORD3>indices
      <KEYWORD3>nocase
      <KEYWORD3>nocomplain
      <KEYWORD3>nonewline
      <KEYWORD3>code
      <KEYWORD3>errorinfo
      <KEYWORD3>errorcode
      <KEYWORD3>atime
      <KEYWORD3>anymore
      <KEYWORD3>args
      <KEYWORD3>body
      <KEYWORD3>compare
      <KEYWORD3>cmdcount
      <KEYWORD3>commands
      <KEYWORD3>ctime
      <KEYWORD3>current
      <KEYWORD3>default
      <KEYWORD3>dev
      <KEYWORD3>dirname
      <KEYWORD3>donesearch
      <KEYWORD3>errorinfo
      <KEYWORD3>executable
      <KEYWORD3>extension
      <KEYWORD3>first
      <KEYWORD3>globals
      <KEYWORD3>gid
      <KEYWORD3>index
      <KEYWORD3>ino
      <KEYWORD3>isdirectory
      <KEYWORD3>isfile
      <KEYWORD3>keep
      <KEYWORD3>last
      <KEYWORD3>level
      <KEYWORD3>length
      <KEYWORD3>library
      <KEYWORD3>locals
      <KEYWORD3>lstat
      <KEYWORD3>match
      <KEYWORD3>mode
      <KEYWORD3>mtime
      <KEYWORD3>names
      <KEYWORD3>nextelement
      <KEYWORD3>nextid
      <KEYWORD3>nlink
      <KEYWORD3>none
      <KEYWORD3>procs
      <KEYWORD3>owned
      <KEYWORD3>range
      <KEYWORD3>readable
      <KEYWORD3>readlink
      <KEYWORD3>redo
      <KEYWORD3>release
      <KEYWORD3>rootname
      <KEYWORD3>script
      <KEYWORD3>show
      <KEYWORD3>size
      <KEYWORD3>startsearch
      <KEYWORD3>stat
      <KEYWORD3>status
      <KEYWORD3>substitute
      <KEYWORD3>tail
      <KEYWORD3>tclversion
      <KEYWORD3>tolower
      <KEYWORD3>toupper
      <KEYWORD3>trim
      <KEYWORD3>trimleft
      <KEYWORD3>trimright
      <KEYWORD3>type
      <KEYWORD3>uid
      <KEYWORD3>variable
      <KEYWORD3>vars
      <KEYWORD3>vdelete
      <KEYWORD3>vinfo
      <KEYWORD3>visibility
      <KEYWORD3>window
      <KEYWORD3>writable
      <KEYWORD3>accelerator
      <KEYWORD3>activeforeground
      <KEYWORD3>activebackground
      <KEYWORD3>anchor
      <KEYWORD3>aspect
      <KEYWORD3>background
      <KEYWORD3>before
      <KEYWORD3>bg
      <KEYWORD3>borderwidth
      <KEYWORD3>bd
      <KEYWORD3>bitmap
      <KEYWORD3>command
      <KEYWORD3>cursor
      <KEYWORD3>default
      <KEYWORD3>expand
      <KEYWORD3>family
      <KEYWORD3>fg
      <KEYWORD3>fill
      <KEYWORD3>font
      <KEYWORD3>force
      <KEYWORD3>foreground
      <KEYWORD3>from
      <KEYWORD3>height
      <KEYWORD3>icon
      <KEYWORD3>question
      <KEYWORD3>warning
      <KEYWORD3>in
      <KEYWORD3>ipadx
      <KEYWORD3>ipady
      <KEYWORD3>justify
      <KEYWORD3>left
      <KEYWORD3>center
      <KEYWORD3>right
      <KEYWORD3>length
      <KEYWORD3>padx
      <KEYWORD3>pady
      <KEYWORD3>offvalue
      <KEYWORD3>onvalue
      <KEYWORD3>orient
      <KEYWORD3>horizontal
      <KEYWORD3>vertical
      <KEYWORD3>outline
      <KEYWORD3>oversrike
      <KEYWORD3>relief
      <KEYWORD3>raised
      <KEYWORD3>sunken
      <KEYWORD3>flat
      <KEYWORD3>groove
      <KEYWORD3>ridge
      <KEYWORD3>solid
      <KEYWORD3>screen
      <KEYWORD3>selectbackground
      <KEYWORD3>selectforeground
      <KEYWORD3>setgrid
      <KEYWORD3>side
      <KEYWORD3>size
      <KEYWORD3>slant
      <KEYWORD3>left
      <KEYWORD3>right
      <KEYWORD3>top
      <KEYWORD3>bottom
      <KEYWORD3>spacing1
      <KEYWORD3>spacing2
      <KEYWORD3>spacing3
      <KEYWORD3>state
      <KEYWORD3>stipple
      <KEYWORD3>takefocus
      <KEYWORD3>tearoff
      <KEYWORD3>textvariable
      <KEYWORD3>title
      <KEYWORD3>to
      <KEYWORD3>type
      <KEYWORD3>abortretryignore
      <KEYWORD3>ok
      <KEYWORD3>okcancel
      <KEYWORD3>retrycancel
      <KEYWORD3>yesno
      <KEYWORD3>yesnocancel
      <KEYWORD3>underline
      <KEYWORD3>value
      <KEYWORD3>variable
      <KEYWORD3>weight
      <KEYWORD3>width
      <KEYWORD3>xscrollcommand
      <KEYWORD3>yscrollcommand
      <KEYWORD3>active
      <KEYWORD3>add
      <KEYWORD3>arc
      <KEYWORD3>aspect
      <KEYWORD3>bitmap
      <KEYWORD3>cascade
      <KEYWORD3>cget
      <KEYWORD3>children
      <KEYWORD3>class
      <KEYWORD3>clear
      <KEYWORD3>client
      <KEYWORD3>create
      <KEYWORD3>colormodel
      <KEYWORD3>command
      <KEYWORD3>configure
      <KEYWORD3>deiconify
      <KEYWORD3>delete
      <KEYWORD3>disabled
      <KEYWORD3>exists
      <KEYWORD3>focusmodel
      <KEYWORD3>flash
      <KEYWORD3>forget
      <KEYWORD3>geometry
      <KEYWORD3>get
      <KEYWORD3>group
      <KEYWORD3>handle
      <KEYWORD3>iconbitmap
      <KEYWORD3>iconify
      <KEYWORD3>iconmask
      <KEYWORD3>iconname
      <KEYWORD3>iconposition
      <KEYWORD3>iconwindow
      <KEYWORD3>idletasks
      <KEYWORD3>insert
      <KEYWORD3>interps
      <KEYWORD3>itemconfigure
      <KEYWORD3>invoke
      <KEYWORD3>line
      <KEYWORD3>mark
      <KEYWORD3>maxsize
      <KEYWORD3>minsize
      <KEYWORD3>move
      <KEYWORD3>name
      <KEYWORD3>normal
      <KEYWORD3>overrideredirect
      <KEYWORD3>oval
      <KEYWORD3>own
      <KEYWORD3>photo
      <KEYWORD3>polygon
      <KEYWORD3>positionfrom
      <KEYWORD3>propagate
      <KEYWORD3>protocol
      <KEYWORD3>ranges
      <KEYWORD3>rectangle
      <KEYWORD3>remove
      <KEYWORD3>resizable
      <KEYWORD3>separator
      <KEYWORD3>slaves
      <KEYWORD3>sizefrom
      <KEYWORD3>state
      <KEYWORD3>tag
      <KEYWORD3>title
      <KEYWORD3>transient
      <KEYWORD3>window
      <KEYWORD3>withdraw
      <KEYWORD3>xview
      <KEYWORD3>yview
      <KEYWORD3>Activate
      <KEYWORD3>Alt
      <KEYWORD3>Any
      <KEYWORD3>B1
      <KEYWORD3>B2
      <KEYWORD3>B3
      <KEYWORD3>Button1
      <KEYWORD3>Button2
      <KEYWORD3>Button3
      <KEYWORD3>ButtonPress
      <KEYWORD3>ButtonRelease
      <KEYWORD3>Double
      <KEYWORD3>Circulate
      <KEYWORD3>Colormap
      <KEYWORD3>Configure
      <KEYWORD3>Control
      <KEYWORD3>Deactivate
      <KEYWORD3>Escape
      <KEYWORD3>Expose
      <KEYWORD3>FocusIn
      <KEYWORD3>FocusOut
      <KEYWORD3>Gravity
      <KEYWORD3>Key
      <KEYWORD3>KeyPress
      <KEYWORD3>KeyRelease
      <KEYWORD3>Lock
      <KEYWORD3>Meta
      <KEYWORD3>Property
      <KEYWORD3>Reparent
      <KEYWORD3>Shift
      <KEYWORD3>Unmap
      <KEYWORD3>Visibility
      <KEYWORD3>Button
      <KEYWORD3>ButtonPress
      <KEYWORD3>ButtonRelease
      <KEYWORD3>Destroy
      <KEYWORD3>Escape
      <KEYWORD3>Enter
      <KEYWORD3>Leave
      <KEYWORD3>Motion
      <KEYWORD3>MenuSelect
      <KEYWORD3>Triple
      <KEYWORD3>all
    </KEYWORDS>
  </RULES>

  <RULES SET="TCL_COMMENT" DEFAULT="OPERATOR">
    <!-- Allows catching blocks starting with a comment.
        or comments following a ; -->
    <SEQ_REGEXP TYPE="COMMENT1" HASH_CHAR="#" DELEGATE="MAIN">#.*
  </RULES>

  <RULES SET="TCL_STRING" DEFAULT="LITERAL1" ESCAPE="\">
    <PROPS>
      <PROPERTY NAME="indentOpenBrackets" VALUE="" />
      <PROPERTY NAME="indentCloseBrackets" VALUE="" />
    </PROPS>

    <!-- Continuation line. Processed before anything else by Tcl.-->
    <EOL_SPAN_REGEXP TYPE="OPERATOR" HASH_CHAR="\">\\$

    <!-- Avoid colouring variables substituted inside strings -->
    <SPAN_REGEXP TYPE="NULL" HASH_CHAR="$" DELEGATE="MAIN">
      <BEGIN>\$(\w|::)+\(
      <END>)
    </SPAN_REGEXP>
    <SPAN_REGEXP TYPE="NULL" HASH_CHAR="$" DELEGATE="MAIN">
      <BEGIN>\$\{
      <END>}
    </SPAN_REGEXP>
    <SEQ_REGEXP TYPE="NULL" HASH_CHAR="$">\$(\w|::)+

    <!-- Sub-commands to be substituted -->
    <SPAN TYPE="OPERATOR" NO_LINE_BREAK="FALSE" DELEGATE="MAIN">
      <BEGIN>[
      <END>]
    </SPAN>

    <!-- Escaped characters -->
    <SEQ TYPE="KEYWORD3">\a
    <SEQ TYPE="KEYWORD3">\b
    <SEQ TYPE="KEYWORD3">\f
    <SEQ TYPE="KEYWORD3">\n
    <SEQ TYPE="KEYWORD3">\r
    <SEQ TYPE="KEYWORD3">\t
    <SEQ TYPE="KEYWORD3">\v
  </RULES>
</MODE>

Other jEdit examples (source code examples)

Here is a short list of links related to this jEdit tcl.xml source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.