# Define SciTE settings for tcl and itcl files.
# The tcl lexer is currently just an alias of the cpp lexer and does not really
# understand TCL syntax

filter.tcl=Tcl (tcl)|*.tcl|

lexer.*.tcl=tcl

filter.itcl=itcl (.itcl)|*.itcl|

lexer.*.itcl=tcl

preprocessor.symbol.*.tcl=
preprocessor.start.*.tcl=
preprocessor.middle.*.tcl=
preprocessor.end.*.tcl=

keywordclass.tcl=after append array auto_execok auto_import auto_load \
auto_load_index auto_qualify beep binary break case catch cd clock \
close concat continue dde default echo else elseif encoding eof \
error eval exec exit expr fblocked fconfigure fcopy file \
fileevent flush for foreach format gets glob global history if \
incr info interp join lappend lindex linsert list llength load \
lrange lreplace lsearch lsort namespace open package pid \
pkg_mkIndex proc puts pwd read regexp regsub rename resource \
return scan seek set socket source split string subst switch \
tclLog tclMacPkgSearch tclPkgSetup tclPkgUnknown tell time \
trace unknown unset update uplevel upvar variable vwait while

keywordclass.tk=bell bind bindtags button canvas checkbutton console \
destroy entry event focus font frame grab grid image label listbox menu \
menubutton message pack place radiobutton raise scale scrollbar \
text tk tkwait toplevel winfo wm

keywordclass.itcl=@scope body class code common component configbody \
constructor define destructor hull import inherit itcl itk itk_component \
itk_initialize itk_interior itk_option iwidgets keep method \
private protected public

keywordclass.TkCommands=tkButtonDown tkButtonEnter tkButtonInvoke \
tkButtonLeave tkButtonUp tkCancelRepeat tkCheckRadioInvoke tkDarken \
tkEntryAutoScan 	tkEntryBackspace tkEntryButton1 tkEntryClosestGap \
tkEntryInsert tkEntryKeySelect tkEntryMouseSelect tkEntryNextWord \
tkEntryPaste tkEntryPreviousWord tkEntrySeeInsert tkEntrySetCursor \
tkEntryTranspose tkEventMotifBindings tkFDGetFileTypes tkFirstMenu \
tkFocusGroup_Destroy tkFocusGroup_In tkFocusGroup_Out tkFocusOK \
tkListboxAutoScan tkListboxBeginExtend tkListboxBeginSelect \
tkListboxBeginToggle tkListboxCancel tkListboxDataExtend \
tkListboxExtendUpDown tkListboxMotion tkListboxSelectAll \
tkListboxUpDown tkMbButtonUp tkMbEnter tkMbLeave tkMbMotion \
tkMbPost tkMenuButtonDown tkMenuDownArrow tkMenuDup tkMenuEscape \
tkMenuFind tkMenuFindName tkMenuFirstEntry tkMenuInvoke tkMenuLeave \
tkMenuLeftArrow tkMenuMotion tkMenuNextEntry tkMenuNextMenu \
tkMenuRightArrow tkMenuUnpost tkMenuUpArrow tkMessageBox \
tkPostOverPoint tkRecolorTree tkRestoreOldGrab tkSaveGrabInfo \
tkScaleActivate tkScaleButton2Down tkScaleButtonDown \
tkScaleControlPress tkScaleDrag tkScaleEndDrag tkScaleIncrement \
tkScreenChanged tkScrollButton2Down tkScrollButtonDown \
tkScrollButtonUp tkScrollByPages tkScrollByUnits tkScrollDrag \
tkScrollEndDrag tkScrollSelect tkScrollStartDrag tkScrollToPos  \
tkScrollTopBottom tkTabToWindow tkTearOffMenu tkTextAutoScan \
tkTextButton1 tkTextClosestGap tkTextInsert tkTextKeyExtend \
tkTextKeySelect tkTextNextPara tkTextNextPos tkTextNextWord \
tkTextPaste tkTextPrevPara tkTextPrevPos tkTextResetAnchor \
tkTextScrollPages tkTextSelectTo tkTextSetCursor tkTextTranspose \
tkTextUpDownLine tkTraverseToMenu tkTraverseWithinMenu tk_bisque \
tk_chooseColor tk_dialog tk_focusFollowsMouse tk_focusNext \
tk_focusPrev tk_getOpenFile tk_getSaveFile tk_messageBox \
tk_optionMenu tk_popup tk_setPalette tk_textCopy tk_textCut \
tk_textPaste

keywords.*.tcl=$(keywordclass.tcl) $(keywordclass.tk) $(keywordclass.TkCommands)

keywords.*.itcl=$(keywordclass.tcl) $(keywordclass.tk) $(keywordclass.itcl) \
$(keywordclass.TkCommands)

#statement.indent.*.tcl=4 switch catch class default do else for if \
#try while
statement.end.*.tcl=8  ;
statement.lookback.*.tcl=1
block.start.*.tcl=4 {
block.end.*.tcl=4 }

#none of this has any effect, I guess a custom lexer would be needed
comment.block.tcl=#~
comment.box.start.tcl=##
comment.box.middle.tcl= #
comment.box.end.tcl= ##

# tcl styles
# White space
style.tcl.0=fore:#808080
# Comment
style.tcl.1=fore:#007F00,$(font.comment)
# Number
style.tcl.2=fore:#007F7F
# String
style.tcl.3=fore:#7F007F,$(font.monospace)
# Single quoted string
style.tcl.4=fore:#7F007F,$(font.monospace)
# Keyword
style.tcl.5=fore:#00007F,bold
# Triple quotes
style.tcl.6=fore:#7F0000
# Triple double quotes
style.tcl.7=fore:#7F0000
# Class name definition
style.tcl.8=fore:#0000FF,bold
# Function or method name definition
style.tcl.9=fore:#007F7F,bold
# Operators
style.tcl.10=bold
# Identifiers
style.tcl.11=
# Comment-blocks
style.tcl.12=fore:#7F7F7F
# End of line where string is not closed
style.tcl.13=fore:#000000,$(font.monospace),back:#E0C0E0,eolfilled
# Matched Operators
style.tcl.34=fore:#0000FF,bold
style.tcl.35=fore:#FF0000,bold
# Braces are only matched in operator style
braces.tcl.style=10
