summaryrefslogtreecommitdiffstats
path: root/runtime/syntax/coretex.vim
blob: adb77bbc18e8037382649397074e9da53638eae5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
" Vim syntax file
" Language:         TeX (core definition)
" Maintainer:       Nikolai Weibull <now@bitwi.se>
" Latest Revision:  2006-03-26

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

" This follows the grouping (sort of) found at
" http://www.tug.org/utilities/plain/cseq.html#top-fam

syn keyword coretexTodo                         TODO FIXME XXX NOTE

syn match coretexComment                        display contains=coretexTodo
      \ '\\\@<!\%(\\\\\)*\zs%.*$'

syn match   coretexDimension                    display contains=@NoSpell
      \ '[+-]\=\s*\%(\d\+\%([.,]\d*\)\=\|[.,]\d\+\)\s*\%(true\)\=\s*\%(p[tc]\|in\|bp\|c[mc]\|m[mu]\|dd\|sp\|e[mx]\)\>'

syn cluster coretexBox
      \ contains=coretexBoxCommand,coretexBoxInternalQuantity,
      \ coretexBoxParameterDimen,coretexBoxParameterInteger,
      \ coretexBoxParameterToken

syn cluster coretexCharacter
      \ contains=coretexCharacterCommand,coretexCharacterInternalQuantity,
      \ coretexCharacterParameterInteger

syn cluster coretexDebugging
      \ contains=coretexDebuggingCommand,coretexDebuggingParameterInteger,
      \ coretexDebuggingParameterToken

syn cluster coretexFileIO
      \ contains=coretexFileIOCommand,coretexFileIOInternalQuantity,
      \ coretexFileIOParameterToken

syn cluster coretexFonts
      \ contains=coretexFontsCommand,coretexFontsInternalQuantity

syn cluster coretexGlue
      \ contains=coretexGlueCommand,coretexGlueDerivedCommand

syn cluster coretexHyphenation
      \ contains=coretexHyphenationCommand,coretexHyphenationDerivedCommand,
      \ coretexHyphenationInternalQuantity,coretexHyphenationParameterInteger

syn cluster coretexInserts
      \ contains=coretexInsertsCommand,coretexInsertsParameterDimen,
      \ coretexInsertsParameterGlue,coretexInsertsParameterInteger

syn cluster coretexJob
      \ contains=coretexJobCommand,coretexJobInternalQuantity,
      \ coretexJobParameterInteger

syn cluster coretexKern
      \ contains=coretexKernCommand,coretexKernInternalQuantity

syn cluster coretexLogic
      \ contains=coretexLogicCommand

syn cluster coretexMacro
      \ contains=coretexMacroCommand,coretexMacroDerivedCommand,
      \ coretexMacroParameterInteger

syn cluster coretexMarks
      \ contains=coretexMarksCommand

syn cluster coretexMath
      \ contains=coretexMathCommand,coretexMathDerivedCommand,
      \ coretexMathInternalQuantity,coretexMathParameterDimen,
      \ coretexMathParameterGlue,coretexMathParameterInteger,
      \ coretexMathParameterMuglue,coretexMathParameterToken

syn cluster coretexPage
      \ contains=coretexPageInternalQuantity,coretexPageParameterDimen,
      \ coretexPageParameterGlue

syn cluster coretexParagraph
      \ contains=coretexParagraphCommand,coretexParagraphInternalQuantity,
      \ coretexParagraphParameterDimen,coretexParagraphParameterGlue,
      \ coretexParagraphParameterInteger,coretexParagraphParameterToken

syn cluster coretexPenalties
      \ contains=coretexPenaltiesCommand,coretexPenaltiesInternalQuantity,
      \ coretexPenaltiesParameterInteger

syn cluster coretexRegisters
      \ contains=coretexRegistersCommand,coretexRegistersInternalQuantity

syn cluster coretexTables
      \ contains=coretexTablesCommand,coretexTablesParameterGlue,
      \ coretexTablesParameterToken

syn cluster coretexCommand
      \ contains=coretexBoxCommand,coretexCharacterCommand,
      \ coretexDebuggingCommand,coretexFileIOCommand,
      \ coretexFontsCommand,coretexGlueCommand,
      \ coretexHyphenationCommand,coretexInsertsCommand,
      \ coretexJobCommand,coretexKernCommand,coretexLogicCommand,
      \ coretexMacroCommand,coretexMarksCommand,coretexMathCommand,
      \ coretexParagraphCommand,coretexPenaltiesCommand,coretexRegistersCommand,
      \ coretexTablesCommand

syn match   coretexBoxCommand                   display contains=@NoSpell
      \ '\\\%([hv]\=box\|[cx]\=leaders\|copy\|[hv]rule\|lastbox\|setbox\|un[hv]\%(box\|copy\)\|vtop\)\>'
syn match   coretexCharacterCommand             display contains=@NoSpell
      \ '\\\%([] ]\|\%(^^M\|accent\|char\|\%(lower\|upper\)case\|number\|romannumeral\|string\)\>\)'
syn match   coretexDebuggingCommand             display contains=@NoSpell
      \ '\\\%(\%(batch\|\%(non\|error\)stop\|scroll\)mode\|\%(err\)\=message\|meaning\|show\%(box\%(breadth\|depth\)\=\|lists\|the\)\)\>'
syn match   coretexFileIOCommand                display contains=@NoSpell
      \ '\\\%(\%(close\|open\)\%(in\|out\)\|endinput\|immediate\|input\|read\|shipout\|special\|write\)\>'
syn match   coretexFontsCommand                 display contains=@NoSpell
      \ '\\\%(/\|fontname\)\>'
syn match   coretexGlueCommand                  display contains=@NoSpell
      \ '\\\%([hv]\|un\)skip\>'
syn match   coretexHyphenationCommand           display contains=@NoSpell
      \ '\\\%(discretionary\|hyphenation\|patterns\|setlanguage\)\>'
syn match   coretexInsertsCommand               display contains=@NoSpell
      \ '\\\%(insert\|split\%(bot\|first\)mark\|vsplit\)\>'
syn match   coretexJobCommand                   display contains=@NoSpell
      \ '\\\%(dump\|end\|jobname\)\>'
syn match   coretexKernCommand                  display contains=@NoSpell
      \ '\\\%(kern\|lower\|move\%(left\|right\)\|raise\|unkern\)\>'
syn match   coretexLogicCommand                 display contains=@NoSpell
      \ '\\\%(else\|fi\|if[a-zA-Z@]\+\|or\)\>'
"      \ '\\\%(else\|fi\|if\%(case\|cat\|dim\|eof\|false\|[hv]box\|[hmv]mode\|inner\|num\|odd\|true\|void\|x\)\=\|or\)\>'
syn match   coretexMacroCommand                 display contains=@NoSpell
      \ '\\\%(after\%(assignment\|group\)\|\%(begin\|end\)group\|\%(end\)\=csname\|e\=def\|expandafter\|futurelet\|global\|let\|long\|noexpand\|outer\|relax\|the\)\>'
syn match   coretexMarksCommand                 display contains=@NoSpell
      \ '\\\%(bot\|first\|top\)\=mark\>'
syn match   coretexMathCommand                  display contains=@NoSpell
      \ '\\\%(abovewithdelims\|delimiter\|display\%(limits\|style\)\|l\=eqno\|left\|\%(no\)\=limits\|math\%(accent\|bin\|char\|choice\|close\|code\|inner\|op\|open\|ord\|punct\|rel\)\|mkern\|mskip\|muskipdef\|nonscript\|\%(over\|under\)line\|radical\|right\|\%(\%(script\)\{1,2}\|text\)style\|vcenter\)\>'
syn match   coretexParagraphCommand             display contains=@NoSpell
      \ '\\\%(ignorespaces\|indent\|no\%(boundary\|indent\)\|par\|vadjust\)\>'
syn match   coretexPenaltiesCommand             display contains=@NoSpell
      \ '\\\%(un\)\=penalty\>'
syn match   coretexRegistersCommand             display contains=@NoSpell
      \ '\\\%(advance\|\%(count\|dimen\|skip\|toks\)def\|divide\|multiply\)\>'
syn match   coretexTablesCommand                display contains=@NoSpell
      \ '\\\%(cr\|crcr\|[hv]align\|noalign\|omit\|span\)\>'

syn cluster coretexDerivedCommand
      \ contains=coretexGlueDerivedCommand,coretexHyphenationDerivedCommand,
      \ coretexMacroDerivedCommand,coretexMathDerivedCommand

syn match   coretexGlueDerivedCommand           display contains=@NoSpell
      \ '\\\%([hv]fil\%(l\|neg\)\=\|[hv]ss\)\>'
syn match   coretexHyphenationDerivedCommand    display contains=@NoSpell
      \ '\\-'
syn match   coretexMacroDerivedCommand          display contains=@NoSpell
      \ '\\[gx]def\>'
syn match   coretexMathDerivedCommand           display contains=@NoSpell
      \ '\\\%(above\|atop\%(withdelims\)\=\|mathchardef\|over\|overwithdelims\)\>'

syn cluster coretexInternalQuantity
      \ contains=coretexBoxInternalQuantity,coretexCharacterInternalQuantity,
      \ coretexFileIOInternalQuantity,coretexFontsInternalQuantity,
      \ coretexHyphenationInternalQuantity,coretexJobInternalQuantity,
      \ coretexKernInternalQuantity,coretexMathInternalQuantity,
      \ coretexPageInternalQuantity,coretexParagraphInternalQuantity,
      \ coretexPenaltiesInternalQuantity,coretexRegistersInternalQuantity

syn match   coretexBoxInternalQuantity          display contains=@NoSpell
      \ '\\\%(badness\|dp\|ht\|prevdepth\|wd\)\>'
syn match   coretexCharacterInternalQuantity    display contains=@NoSpell
      \ '\\\%(catcode\|chardef\|\%([ul]c\|sf\)code\)\>'
syn match   coretexFileIOInternalQuantity       display contains=@NoSpell
      \ '\\inputlineno\>'
syn match   coretexFontsInternalQuantity        display contains=@NoSpell
      \ '\\\%(font\%(dimen\)\=\|nullfont\)\>'
syn match   coretexHyphenationInternalQuantity  display contains=@NoSpell
      \ '\\hyphenchar\>'
syn match   coretexJobInternalQuantity          display contains=@NoSpell
      \ '\\deadcycles\>'
syn match   coretexKernInternalQuantity         display contains=@NoSpell
      \ '\\lastkern\>'
syn match   coretexMathInternalQuantity         display contains=@NoSpell
      \ '\\\%(delcode\|mathcode\|muskip\|\%(\%(script\)\{1,2}\|text\)font\|skewchar\)\>'
syn match   coretexPageInternalQuantity         display contains=@NoSpell
      \ '\\page\%(depth\|fil\{1,3}stretch\|goal\|shrink\|stretch\|total\)\>'
syn match   coretexParagraphInternalQuantity    display contains=@NoSpell
      \ '\\\%(prevgraf\|spacefactor\)\>'
syn match   coretexPenaltiesInternalQuantity    display contains=@NoSpell
      \ '\\lastpenalty\>'
syn match   coretexRegistersInternalQuantity    display contains=@NoSpell
      \ '\\\%(count\|dimen\|skip\|toks\)\d\+\>'

syn cluster coretexParameterDimen
      \ contains=coretexBoxParameterDimen,coretexInsertsParameterDimen,
      \ coretexMathParameterDimen,coretexPageParameterDimen,
      \ coretexParagraphParameterDimen

syn match   coretexBoxParameterDimen            display contains=@NoSpell
      \ '\\\%(boxmaxdepth\|[hv]fuzz\|overfullrule\)\>'
syn match   coretexInsertsParameterDimen        display contains=@NoSpell
      \ '\\splitmaxdepth\>'
syn match   coretexMathParameterDimen           display contains=@NoSpell
      \ '\\\%(delimitershortfall\|display\%(indent\|width\)\|mathsurround\|nulldelimiterspace\|predisplaysize\|scriptspace\)\>'
syn match   coretexPageParameterDimen           display contains=@NoSpell
      \ '\\\%([hv]offset\|maxdepth\|vsize\)\>'
syn match   coretexParagraphParameterDimen      display contains=@NoSpell
      \ '\\\%(emergencystretch\|\%(hang\|par\)indent\|hsize\|lineskiplimit\)\>'

syn cluster coretexParameterGlue
      \ contains=coretexInsertsParameterGlue,coretexMathParameterGlue,
      \ coretexPageParameterGlue,coretexParagraphParameterGlue,
      \ coretexTablesParameterGlue

syn match   coretexInsertsParameterGlue         display contains=@NoSpell
      \ '\\splittopskip\>'
syn match   coretexMathParameterGlue            display contains=@NoSpell
      \ '\\\%(above\|below\)display\%(short\)\=skip\>'
syn match   coretexPageParameterGlue            display contains=@NoSpell
      \ '\\topskip\>'
syn match   coretexParagraphParameterGlue       display contains=@NoSpell
      \ '\\\%(baseline\|left\|line\|par\%(fill\)\=\|right\|x\=space\)skip\>'
syn match   coretexTablesParameterGlue          display contains=@NoSpell
      \ '\\tabskip\>'

syn cluster coretexParameterInteger
      \ contains=coretexBoxParameterInteger,coretexCharacterParameterInteger,
      \ coretexDebuggingParameterInteger,coretexHyphenationParameterInteger,
      \ coretexInsertsParameterInteger,coretexJobParameterInteger,
      \ coretexMacroParameterInteger,coretexMathParameterInteger,
      \ coretexParagraphParameterInteger,coretexPenaltiesParameterInteger,

syn match   coretexBoxParameterInteger          display contains=@NoSpell
      \ '\\[hv]badness\>'
syn match   coretexCharacterParameterInteger    display contains=@NoSpell
      \ '\\\%(\%(endline\|escape\|newline\)char\)\>'
syn match   coretexDebuggingParameterInteger    display contains=@NoSpell
      \ '\\\%(errorcontextlines\|pausing\|tracing\%(commands\|lostchars\|macros\|online\|output\|pages\|paragraphs\|restores|stats\)\)\>'
syn match   coretexHyphenationParameterInteger  display contains=@NoSpell
      \ '\\\%(defaulthyphenchar\|language\|\%(left\|right\)hyphenmin\|uchyph\)\>'
syn match   coretexInsertsParameterInteger      display contains=@NoSpell
      \ '\\\%(holdinginserts\)\>'
syn match   coretexJobParameterInteger          display contains=@NoSpell
      \ '\\\%(day\|mag\|maxdeadcycles\|month\|time\|year\)\>'
syn match   coretexMacroParameterInteger        display contains=@NoSpell
      \ '\\globaldefs\>'
syn match   coretexMathParameterInteger         display contains=@NoSpell
      \ '\\\%(binoppenalty\|defaultskewchar\|delimiterfactor\|displaywidowpenalty\|fam\|\%(post\|pre\)displaypenalty\|relpenalty\)\>'
syn match   coretexParagraphParameterInteger    display contains=@NoSpell
      \ '\\\%(\%(adj\|\%(double\|final\)hyphen\)demerits\|looseness\|\%(pre\)\=tolerance\)\>'
syn match   coretexPenaltiesParameterInteger    display contains=@NoSpell
      \ '\\\%(broken\|club\|exhyphen\|floating\|hyphen\|interline\|line\|output\|widow\)penalty\>'

syn cluster coretexParameterMuglue
      \ contains=coretexMathParameterMuglue

syn match   coretexMathParameterMuglue          display contains=@NoSpell
      \ '\\\%(med\|thick\|thin\)muskip\>'

syn cluster coretexParameterDimen
      \ contains=coretexBoxParameterToken,coretexDebuggingParameterToken,
      \ coretexFileIOParameterToken,coretexMathParameterToken,
      \ coretexParagraphParameterToken,coretexTablesParameterToken

syn match   coretexBoxParameterToken            display contains=@NoSpell
      \ '\\every[hv]box\>'
syn match   coretexDebuggingParameterToken      display contains=@NoSpell
      \ '\\errhelp\>'
syn match   coretexFileIOParameterToken         display contains=@NoSpell
      \ '\\output\>'
syn match   coretexMathParameterToken           display contains=@NoSpell
      \ '\\every\%(display\|math\)\>'
syn match   coretexParagraphParameterToken      display contains=@NoSpell
      \ '\\everypar\>'
syn match   coretexTablesParameterToken         display contains=@NoSpell
      \ '\\everycr\>'


hi def link coretexCharacter                    Character
hi def link coretexNumber                       Number

hi def link coretexIdentifier                   Identifier

hi def link coretexStatement                    Statement
hi def link coretexConditional                  Conditional

hi def link coretexPreProc                      PreProc
hi def link coretexMacro                        Macro

hi def link coretexType                         Type

hi def link coretexDebug                        Debug

hi def link coretexTodo                         Todo
hi def link coretexComment                      Comment
hi def link coretexDimension                    coretexNumber

hi def link coretexCommand                      coretexStatement
hi def link coretexBoxCommand                   coretexCommand
hi def link coretexCharacterCommand             coretexCharacter
hi def link coretexDebuggingCommand             coretexDebug
hi def link coretexFileIOCommand                coretexCommand
hi def link coretexFontsCommand                 coretexType
hi def link coretexGlueCommand                  coretexCommand
hi def link coretexHyphenationCommand           coretexCommand
hi def link coretexInsertsCommand               coretexCommand
hi def link coretexJobCommand                   coretexPreProc
hi def link coretexKernCommand                  coretexCommand
hi def link coretexLogicCommand                 coretexConditional
hi def link coretexMacroCommand                 coretexMacro
hi def link coretexMarksCommand                 coretexCommand
hi def link coretexMathCommand                  coretexCommand
hi def link coretexParagraphCommand             coretexCommand
hi def link coretexPenaltiesCommand             coretexCommand
hi def link coretexRegistersCommand             coretexCommand
hi def link coretexTablesCommand                coretexCommand

hi def link coretexDerivedCommand               coretexStatement
hi def link coretexGlueDerivedCommand           coretexDerivedCommand
hi def link coretexHyphenationDerivedCommand    coretexDerivedCommand
hi def link coretexMacroDerivedCommand          coretexDerivedCommand
hi def link coretexMathDerivedCommand           coretexDerivedCommand

hi def link coretexInternalQuantity             coretexIdentifier
hi def link coretexBoxInternalQuantity          coretexInternalQuantity
hi def link coretexCharacterInternalQuantity    coretexInternalQuantity
hi def link coretexFileIOInternalQuantity       coretexInternalQuantity
hi def link coretexFontsInternalQuantity        coretexInternalQuantity
hi def link coretexHyphenationInternalQuantity  coretexInternalQuantity
hi def link coretexJobInternalQuantity          coretexInternalQuantity
hi def link coretexKernInternalQuantity         coretexInternalQuantity
hi def link coretexMathInternalQuantity         coretexInternalQuantity
hi def link coretexPageInternalQuantity         coretexInternalQuantity
hi def link coretexParagraphInternalQuantity    coretexInternalQuantity
hi def link coretexPenaltiesInternalQuantity    coretexInternalQuantity
hi def link coretexRegistersInternalQuantity    coretexInternalQuantity

hi def link coretexParameterDimen               coretexNumber
hi def link coretexBoxParameterDimen            coretexParameterDimen
hi def link coretexInsertsParameterDimen        coretexParameterDimen
hi def link coretexMathParameterDimen           coretexParameterDimen
hi def link coretexPageParameterDimen           coretexParameterDimen
hi def link coretexParagraphParameterDimen      coretexParameterDimen

hi def link coretexParameterGlue                coretexNumber
hi def link coretexInsertsParameterGlue         coretexParameterGlue
hi def link coretexMathParameterGlue            coretexParameterGlue
hi def link coretexPageParameterGlue            coretexParameterGlue
hi def link coretexParagraphParameterGlue       coretexParameterGlue
hi def link coretexTablesParameterGlue          coretexParameterGlue

hi def link coretexParameterInteger             coretexNumber
hi def link coretexBoxParameterInteger          coretexParameterInteger
hi def link coretexCharacterParameterInteger    coretexParameterInteger
hi def link coretexDebuggingParameterInteger    coretexParameterInteger
hi def link coretexHyphenationParameterInteger  coretexParameterInteger
hi def link coretexInsertsParameterInteger      coretexParameterInteger
hi def link coretexJobParameterInteger          coretexParameterInteger
hi def link coretexMacroParameterInteger        coretexParameterInteger
hi def link coretexMathParameterInteger         coretexParameterInteger
hi def link coretexParagraphParameterInteger    coretexParameterInteger
hi def link coretexPenaltiesParameterInteger    coretexParameterInteger

hi def link coretexParameterMuglue              coretexNumber
hi def link coretexMathParameterMuglue          coretexParameterMuglue

hi def link coretexParameterToken               coretexIdentifier
hi def link coretexBoxParameterToken            coretexParameterToken
hi def link coretexDebuggingParameterToken      coretexParameterToken
hi def link coretexFileIOParameterToken         coretexParameterToken
hi def link coretexMathParameterToken           coretexParameterToken
hi def link coretexParagraphParameterToken      coretexParameterToken
hi def link coretexTablesParameterToken         coretexParameterToken

let b:current_syntax = "coretex"

let &cpo = s:cpo_save
unlet s:cpo_save