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