# Copyright (C) 1999 - Martin Strauss - under terms of GPL ####################################################### # Farbige Syntax # ok ! proc Syntax {E START END} { global I_befehl syntax_flag if $syntax_flag { set NEW_syntax [$E search "\\" $START $END] if {$NEW_syntax != ""} { $E tag remove syntax_green $NEW_syntax $END $E tag remove syntax_red $NEW_syntax $END $E tag remove syntax_blue $NEW_syntax $END set LISTE [array names I_befehl] lappend LISTE "$" "\\" "\[" "\]" "\{" "\}" ";" "." "-" while {$NEW_syntax != ""} { $E mark set syntax $NEW_syntax if {[$E get syntax-1c syntax] != "\\"} { set ksp [lsearch -exact $LISTE [$E get syntax+1c {syntax+1c wordend}]] if {$ksp == -1} { $E tag add syntax_red syntax {syntax+1c wordend} } else { $E tag add syntax_green syntax {syntax+1c wordend} } } elseif {[$E get syntax-2c syntax-1c] != "\\"} { set ksp [lsearch -exact $LISTE [$E get syntax+1c {syntax+1c wordend}]] if {$ksp == -1} { $E tag add syntax_red syntax {syntax+1c wordend} } else { $E tag add syntax_green syntax {syntax+1c wordend} } } set NEW_syntax [$E search "\\" syntax+1c $END] } set NEW_syntax [$E search "%" $START $END] while {$NEW_syntax != ""} { $E mark set syntax $NEW_syntax if {[$E get syntax-1c syntax] != "\\"} { $E tag add syntax_blue syntax {syntax lineend} $E tag remove syntax_red syntax {syntax lineend} } else { $E tag add syntax_green syntax-1c syntax+1c $E tag remove syntax_red syntax-1c syntax+1c } set NEW_syntax [$E search "%" syntax+1c $END] } set NEW_syntax [$E search "$" $START $END] while {$NEW_syntax != ""} { $E mark set syntax $NEW_syntax $E tag add syntax_green syntax syntax+1c $E tag remove syntax_red syntax syntax+1c set NEW_syntax [$E search "$" syntax+1c $END] } }}}