1" Vim syntax file 2" Language: tf 3" Maintainer: Lutz Eymers <ixtab@polzin.com> 4" URL: http://www.isp.de/data/tf.vim 5" Email: send syntax_vim.tgz 6" Last Change: 2001 May 10 7" 8" Options lite_minlines = x to sync at least x lines backwards 9 10" Remove any old syntax stuff hanging around 11 12" For version 5.x: Clear all syntax items 13" For version 6.x: Quit when a syntax file was already loaded 14if version < 600 15 syntax clear 16elseif exists("b:current_syntax") 17 finish 18endif 19 20syn case match 21 22if !exists("main_syntax") 23 let main_syntax = 'tf' 24endif 25 26" Special global variables 27syn keyword tfVar HOME LANG MAIL SHELL TERM TFHELP TFLIBDIR TFLIBRARY TZ contained 28syn keyword tfVar background backslash contained 29syn keyword tfVar bamf bg_output borg clearfull cleardone clock connect contained 30syn keyword tfVar emulation end_color gag gethostbyname gpri hook hilite contained 31syn keyword tfVar hiliteattr histsize hpri insert isize istrip kecho contained 32syn keyword tfVar kprefix login lp lpquote maildelay matching max_iter contained 33syn keyword tfVar max_recur mecho more mprefix oldslash promt_sec contained 34syn keyword tfVar prompt_usec proxy_host proxy_port ptime qecho qprefix contained 35syn keyword tfVar quite quitdone redef refreshtime scroll shpause snarf sockmload contained 36syn keyword tfVar start_color tabsize telopt sub time_format visual contained 37syn keyword tfVar watch_dog watchname wordpunct wrap wraplog wrapsize contained 38syn keyword tfVar wrapspace contained 39 40" Worldvar 41syn keyword tfWorld world_name world_character world_password world_host contained 42syn keyword tfWorld world_port world_mfile world_type contained 43 44" Number 45syn match tfNumber "-\=\<\d\+\>" 46 47" Float 48syn match tfFloat "\(-\=\<\d+\|-\=\)\.\d\+\>" 49 50" Operator 51syn match tfOperator "[-+=?:&|!]" 52syn match tfOperator "/[^*~@]"he=e-1 53syn match tfOperator ":=" 54syn match tfOperator "[^/%]\*"hs=s+1 55syn match tfOperator "$\+[([{]"he=e-1,me=e-1 56syn match tfOperator "\^\[\+"he=s+1 contains=tfSpecialCharEsc 57 58" Relational 59syn match tfRelation "&&" 60syn match tfRelation "||" 61syn match tfRelation "[<>/!=]=" 62syn match tfRelation "[<>]" 63syn match tfRelation "[!=]\~" 64syn match tfRelation "[=!]/" 65 66 67" Readonly Var 68syn match tfReadonly "[#*]" contained 69syn match tfReadonly "\<-\=L\=\d\{-}\>" contained 70syn match tfReadonly "\<P\(\d\+\|R\|L\)\>" contained 71syn match tfReadonly "\<R\>" contained 72 73" Identifier 74syn match tfIdentifier "%\+[a-zA-Z_#*-0-9]\w*" contains=tfVar,tfReadonly 75syn match tfIdentifier "%\+[{]"he=e-1,me=e-1 76syn match tfIdentifier "\$\+{[a-zA-Z_#*-0-9]\w*}" contains=tfWorld 77 78" Function names 79syn keyword tfFunctions ascii char columns echo filename ftime fwrite getopts 80syn keyword tfFunctions getpid idle kbdel kbgoto kbhead kblen kbmatch kbpoint 81syn keyword tfFunctions kbtail kbwordleft kbwordright keycode lines mod 82syn keyword tfFunctions moresize pad rand read regmatch send strcat strchr 83syn keyword tfFunctions strcmp strlen strncmp strrchr strrep strstr substr 84syn keyword tfFunctions systype time tolower toupper 85 86syn keyword tfStatement addworld bamf beep bind break cat changes connect contained 87syn keyword tfStatement dc def dokey echo edit escape eval export expr fg for contained 88syn keyword tfStatement gag getfile grab help hilite histsize hook if input contained 89syn keyword tfStatement kill lcd let list listsockets listworlds load contained 90syn keyword tfStatement localecho log nohilite not partial paste ps purge contained 91syn keyword tfStatement purgeworld putfile quit quote recall recordline save contained 92syn keyword tfStatement saveworld send sh shift sub substitute contained 93syn keyword tfStatement suspend telnet test time toggle trig trigger unbind contained 94syn keyword tfStatement undef undefn undeft unhook untrig unworld contained 95syn keyword tfStatement version watchdog watchname while world contained 96 97" Hooks 98syn keyword tfHook ACTIVITY BACKGROUND BAMF CONFAIL CONFLICT CONNECT DISCONNECT 99syn keyword tfHook KILL LOAD LOADFAIL LOG LOGIN MAIL MORE PENDING PENDING 100syn keyword tfHook PROCESS PROMPT PROXY REDEF RESIZE RESUME SEND SHADOW SHELL 101syn keyword tfHook SIGHUP SIGTERM SIGUSR1 SIGUSR2 WORLD 102 103" Conditional 104syn keyword tfConditional if endif then else elseif contained 105 106" Repeat 107syn keyword tfRepeat while do done repeat for contained 108 109" Statement 110syn keyword tfStatement break quit contained 111 112" Include 113syn keyword tfInclude require load save loaded contained 114 115" Define 116syn keyword tfDefine bind unbind def undef undefn undefn purge hook unhook trig untrig contained 117syn keyword tfDefine set unset setenv contained 118 119" Todo 120syn keyword tfTodo TODO Todo todo contained 121 122" SpecialChar 123syn match tfSpecialChar "\\[abcfnrtyv\\]" contained 124syn match tfSpecialChar "\\\d\{3}" contained contains=tfOctalError 125syn match tfSpecialChar "\\x[0-9a-fA-F]\{2}" contained 126syn match tfSpecialCharEsc "\[\+" contained 127 128syn match tfOctalError "[89]" contained 129 130" Comment 131syn region tfComment start="^;" end="$" contains=tfTodo 132 133" String 134syn region tfString oneline matchgroup=None start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=tfIdentifier,tfSpecialChar,tfEscape 135syn region tfString matchgroup=None start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=tfIdentifier,tfSpecialChar,tfEscape 136 137syn match tfParentError "[)}\]]" 138 139" Parents 140syn region tfParent matchgroup=Delimiter start="(" end=")" contains=ALLBUT,tfReadonly 141syn region tfParent matchgroup=Delimiter start="\[" end="\]" contains=ALL 142syn region tfParent matchgroup=Delimiter start="{" end="}" contains=ALL 143 144syn match tfEndCommand "%%\{-};" 145syn match tfJoinLines "\\$" 146 147" Types 148 149syn match tfType "/[a-zA-Z_~@][a-zA-Z0-9_]*" contains=tfConditional,tfRepeat,tfStatement,tfInclude,tfDefine,tfStatement 150 151" Catch /quote .. ' 152syn match tfQuotes "/quote .\{-}'" contains=ALLBUT,tfString 153" Catch $(/escape ) 154syn match tfEscape "(/escape .*)" 155 156" sync 157if exists("tf_minlines") 158 exec "syn sync minlines=" . tf_minlines 159else 160 syn sync minlines=100 161endif 162 163" Define the default highlighting. 164" For version 5.7 and earlier: only when not done already 165" For version 5.8 and later: only when an item doesn't have highlighting yet 166if version >= 508 || !exists("did_tf_syn_inits") 167 if version < 508 168 let did_tf_syn_inits = 1 169 command -nargs=+ HiLink hi link <args> 170 else 171 command -nargs=+ HiLink hi def link <args> 172 endif 173 174 HiLink tfComment Comment 175 HiLink tfString String 176 HiLink tfNumber Number 177 HiLink tfFloat Float 178 HiLink tfIdentifier Identifier 179 HiLink tfVar Identifier 180 HiLink tfWorld Identifier 181 HiLink tfReadonly Identifier 182 HiLink tfHook Identifier 183 HiLink tfFunctions Function 184 HiLink tfRepeat Repeat 185 HiLink tfConditional Conditional 186 HiLink tfLabel Label 187 HiLink tfStatement Statement 188 HiLink tfType Type 189 HiLink tfInclude Include 190 HiLink tfDefine Define 191 HiLink tfSpecialChar SpecialChar 192 HiLink tfSpecialCharEsc SpecialChar 193 HiLink tfParentError Error 194 HiLink tfTodo Todo 195 HiLink tfEndCommand Delimiter 196 HiLink tfJoinLines Delimiter 197 HiLink tfOperator Operator 198 HiLink tfRelation Operator 199 200 delcommand HiLink 201endif 202 203let b:current_syntax = "tf" 204 205if main_syntax == 'tf' 206 unlet main_syntax 207endif 208 209" vim: ts=8 210