xref: /vim-8.2.3635/runtime/syntax/plaintex.vim (revision 01a6c216)
1" Vim syntax file
2" Language:             TeX (plain.tex format)
3" Previous Maintainer:  Nikolai Weibull <[email protected]>
4" Latest Revision:      2006-10-26
5
6if exists("b:current_syntax")
7  finish
8endif
9
10let s:cpo_save = &cpo
11set cpo&vim
12
13syn match   plaintexControlSequence         display contains=@NoSpell
14      \ '\\[a-zA-Z@]\+'
15
16runtime! syntax/initex.vim
17unlet b:current_syntax
18
19syn match   plaintexComment                 display
20      \ contains=ALLBUT,initexComment,plaintexComment
21      \ '^\s*%[CDM].*$'
22
23if exists("g:plaintex_delimiters")
24  syn match   plaintexDelimiter             display '[][{}]'
25endif
26
27syn match   plaintexRepeat                  display contains=@NoSpell
28      \ '\\\%(loop\|repeat\)\>'
29
30syn match   plaintexCommand                 display contains=@NoSpell
31      \ '\\\%(plainoutput\|TeX\)\>'
32syn match   plaintexBoxCommand              display contains=@NoSpell
33      \ '\\\%(null\|strut\)\>'
34syn match   plaintexDebuggingCommand        display contains=@NoSpell
35      \ '\\\%(showhyphens\|tracingall\|wlog\)\>'
36syn match   plaintexFontsCommand            display contains=@NoSpell
37      \ '\\\%(bf\|\%(five\|seven\)\%(bf\|i\|rm\|sy\)\|it\|oldstyle\|rm\|sl\|ten\%(bf\|ex\|it\=\|rm\|sl\|sy\|tt\)\|tt\)\>'
38syn match   plaintexGlueCommand             display contains=@NoSpell
39      \ '\\\%(\%(big\|en\|med\|\%(no\|off\)interline\|small\)skip\|\%(center\|left\|right\)\=line\|\%(dot\|\%(left\|right\)arrow\)fill\|[hv]glue\|[lr]lap\|q\=quad\|space\|topglue\)\>'
40syn match   plaintexInsertsCommand          display contains=@NoSpell
41      \ '\\\%(\%(end\|top\)insert\|v\=footnote\)\>'
42syn match   plaintexJobCommand              display contains=@NoSpell
43      \ '\\\%(bye\|fmt\%(name\|version\)\)\>'
44syn match   plaintexInsertsCommand          display contains=@NoSpell
45      \ '\\\%(mid\|page\)insert\>'
46syn match   plaintexKernCommand             display contains=@NoSpell
47      \ '\\\%(en\|\%(neg\)\=thin\)space\>'
48syn match   plaintexMacroCommand            display contains=@NoSpell
49      \ '\\\%(active\|[be]group\|empty\)\>'
50syn match   plaintexPageCommand             display contains=@NoSpell
51      \ '\\\%(\%(super\)\=eject\|nopagenumbers\|\%(normal\|ragged\)bottom\)\>'
52syn match   plaintexParagraphCommand        display contains=@NoSpell
53      \ '\\\%(endgraf\|\%(non\)\=frenchspacing\|hang\|item\%(item\)\=\|narrower\|normalbaselines\|obey\%(lines\|spaces\)\|openup\|proclaim\|\%(tt\)\=raggedright\|textindent\)\>'
54syn match   plaintexPenaltiesCommand        display contains=@NoSpell
55      \ '\\\%(allow\|big\|fil\|good\|med\|no\|small\)\=break\>'
56syn match   plaintexRegistersCommand        display contains=@NoSpell
57      \ '\\\%(advancepageno\|new\%(box\|count\|dimen\|fam\|help\|if\|insert\|language\|muskip\|read\|skip\|toks\|write\)\)\>'
58syn match   plaintexTablesCommand           display contains=@NoSpell
59      \ '&\|\\+\|\\\%(cleartabs\|endline\|hidewidth\|ialign\|multispan\|settabs\|tabalign\)\>'
60
61if !exists("g:plaintex_no_math")
62  syn region  plaintexMath                  matchgroup=plaintexMath
63      \ contains=@plaintexMath,@NoSpell
64      \ start='\$' skip='\\\\\|\\\$' end='\$'
65  syn region  plaintexMath                  matchgroup=plaintexMath
66      \ contains=@plaintexMath,@NoSpell keepend
67      \ start='\$\$' skip='\\\\\|\\\$' end='\$\$'
68endif
69
70" Keep this after plaintexMath, as we don’t want math mode started at a \$.
71syn match   plaintexCharacterCommand        display contains=@NoSpell
72      \ /\\\%(["#$%&'.=^_`~]\|``\|''\|-\{2,3}\|[?!]`\|^^L\|\~\|\%(a[ae]\|A[AE]\|acute\|[cdHoOPStuvijlL]\|copyright\|d\=dag\|folio\|ldotp\|[lr]q\|oe\|OE\|slash\|ss\|underbar\)\>\)/
73
74syn cluster plaintexMath
75      \ contains=plaintexMathCommand,plaintexMathBoxCommand,
76      \ plaintexMathCharacterCommand,plaintexMathDelimiter,
77      \ plaintexMathFontsCommand,plaintexMathLetter,plaintexMathSymbol,
78      \ plaintexMathFunction,plaintexMathOperator,plaintexMathPunctuation,
79      \ plaintexMathRelation
80
81syn match   plaintexMathCommand             display contains=@NoSpell contained
82      \ '\\\%([!*,;>{}|_^]\|\%([aA]rrowvert\|[bB]ig\%(g[lmr]\=\|r\)\=\|\%(border\|p\)\=matrix\|displaylines\|\%(down\|up\)bracefill\|eqalign\%(no\)\|leqalignno\|[lr]moustache\|mathpalette\|root\|s[bp]\|skew\|sqrt\)\>\)'
83syn match   plaintexMathBoxCommand          display contains=@NoSpell contained
84      \ '\\\%([hv]\=phantom\|mathstrut\|smash\)\>'
85syn match   plaintexMathCharacterCommand    display contains=@NoSpell contained
86      \ '\\\%(b\|bar\|breve\|check\|d\=dots\=\|grave\|hat\|[lv]dots\|tilde\|vec\|wide\%(hat\|tilde\)\)\>'
87syn match   plaintexMathDelimiter           display contains=@NoSpell contained
88      \ '\\\%(brace\%(vert\)\=\|brack\|cases\|choose\|[lr]\%(angle\|brace\|brack\|ceil\|floor\|group\)\|over\%(brace\|\%(left\|right\)arrow\)\|underbrace\)\>'
89syn match   plaintexMathFontsCommand        display contains=@NoSpell contained
90      \ '\\\%(\%(bf\|it\|sl\|tt\)fam\|cal\|mit\)\>'
91syn match   plaintexMathLetter              display contains=@NoSpell contained
92      \ '\\\%(aleph\|alpha\|beta\|chi\|[dD]elta\|ell\|epsilon\|eta\|[gG]amma\|[ij]math\|iota\|kappa\|[lL]ambda\|[mn]u\|[oO]mega\|[pP][hs]\=i\|rho\|[sS]igma\|tau\|[tT]heta\|[uU]psilon\|var\%(epsilon\|ph\=i\|rho\|sigma\|theta\)\|[xX]i\|zeta\)\>'
93syn match   plaintexMathSymbol              display contains=@NoSpell contained
94      \ '\\\%(angle\|backslash\|bot\|clubsuit\|emptyset\|epsilon\|exists\|flat\|forall\|hbar\|heartsuit\|Im\|infty\|int\|lnot\|nabla\|natural\|neg\|pmod\|prime\|Re\|sharp\|smallint\|spadesuit\|surd\|top\|triangle\%(left\|right\)\=\|vdash\|wp\)\>'
95syn match   plaintexMathFunction            display contains=@NoSpell contained
96      \ '\\\%(arc\%(cos\|sin\|tan\)\|arg\|\%(cos\|sin\|tan\)h\=\|coth\=\|csc\|de[gt]\|dim\|exp\|gcd\|hom\|inf\|ker\|lo\=g\|lim\%(inf\|sup\)\=\|ln\|max\|min\|Pr\|sec\|sup\)\>'
97syn match   plaintexMathOperator            display contains=@NoSpell contained
98      \ '\\\%(amalg\|ast\|big\%(c[au]p\|circ\|o\%(dot\|plus\|times\|sqcup\)\|triangle\%(down\|up\)\|uplus\|vee\|wedge\|bmod\|bullet\)\|c[au]p\|cdot[ps]\=\|circ\|coprod\|d\=dagger\|diamond\%(suit\)\=\|div\|land\|lor\|mp\|o\%(dot\|int\|minus\|plus\|slash\|times\)pm\|prod\|setminus\|sqc[au]p\|sqsu[bp]seteq\|star\|su[bp]set\%(eq\)\=\|sum\|times\|uplus\|vee\|wedge\|wr\)\>'
99syn match   plaintexMathPunctuation         display contains=@NoSpell contained
100      \ '\\\%(colon\)\>'
101syn match   plaintexMathRelation            display contains=@NoSpell contained
102      \ '\\\%(approx\|asymp\|bowtie\|buildrel\|cong\|dashv\|doteq\|[dD]ownarrow\|equiv\|frown\|geq\=\|gets\|gg\|hook\%(left\|right\)arrow\|iff\|in\|leq\=\|[lL]eftarrow\|\%(left\|right\)harpoon\%(down\|up\)\|[lL]eftrightarrow\|ll\|[lL]ongleftrightarrow\|longmapsto\|[lL]ongrightarrow\|mapsto\|mid\|models\|[ns][ew]arrow\|neq\=\|ni\|not\%(in\)\=\|owns\|parallel\|perp\|prec\%(eq\)\=\|propto\|[rR]ightarrow\|rightleftharpoons\|sim\%(eq\)\=\|smile\|succ\%(eq\)\=\|to\|[uU]parrow\|[uU]pdownarrow\|[vV]ert\)\>'
103
104syn match   plaintexParameterDimen          display contains=@NoSpell
105      \ '\\maxdimen\>'
106syn match   plaintexMathParameterDimen      display contains=@NoSpell
107      \ '\\jot\>'
108syn match   plaintexParagraphParameterGlue  display contains=@NoSpell
109      \ '\\\%(\%(big\|med\|small\)skipamount\|normalbaselineskip\|normallineskip\%(limit\)\=\)\>'
110
111syn match   plaintexFontParameterInteger    display contains=@NoSpell
112      \ '\\magstep\%(half\)\=\>'
113syn match   plaintexJobParameterInteger     display contains=@NoSpell
114      \ '\\magnification\>'
115syn match   plaintexPageParameterInteger    display contains=@NoSpell
116      \ '\\pageno\>'
117
118syn match   plaintexPageParameterToken      display contains=@NoSpell
119      \ '\\\%(foot\|head\)line\>'
120
121hi def link plaintexOperator                Operator
122
123hi def link plaintexDelimiter               Delimiter
124
125hi def link plaintexControlSequence         Identifier
126hi def link plaintexComment                 Comment
127hi def link plaintexInclude                 Include
128hi def link plaintexRepeat                  Repeat
129
130hi def link plaintexCommand                 initexCommand
131hi def link plaintexBoxCommand              plaintexCommand
132hi def link plaintexCharacterCommand        initexCharacterCommand
133hi def link plaintexDebuggingCommand        initexDebuggingCommand
134hi def link plaintexFontsCommand            initexFontsCommand
135hi def link plaintexGlueCommand             plaintexCommand
136hi def link plaintexInsertsCommand          plaintexCommand
137hi def link plaintexJobCommand              initexJobCommand
138hi def link plaintexKernCommand             plaintexCommand
139hi def link plaintexMacroCommand            initexMacroCommand
140hi def link plaintexPageCommand             plaintexCommand
141hi def link plaintexParagraphCommand        plaintexCommand
142hi def link plaintexPenaltiesCommand        plaintexCommand
143hi def link plaintexRegistersCommand        plaintexCommand
144hi def link plaintexTablesCommand           plaintexCommand
145
146hi def link plaintexMath                    String
147hi def link plaintexMathCommand             plaintexCommand
148hi def link plaintexMathBoxCommand          plaintexBoxCommand
149hi def link plaintexMathCharacterCommand    plaintexCharacterCommand
150hi def link plaintexMathDelimiter           plaintexDelimiter
151hi def link plaintexMathFontsCommand        plaintexFontsCommand
152hi def link plaintexMathLetter              plaintexMathCharacterCommand
153hi def link plaintexMathSymbol              plaintexMathLetter
154hi def link plaintexMathFunction            Function
155hi def link plaintexMathOperator            plaintexOperator
156hi def link plaintexMathPunctuation         plaintexCharacterCommand
157hi def link plaintexMathRelation            plaintexOperator
158
159hi def link plaintexParameterDimen          initexParameterDimen
160hi def link plaintexMathParameterDimen      initexMathParameterDimen
161hi def link plaintexParagraphParameterGlue  initexParagraphParameterGlue
162hi def link plaintexFontParameterInteger    initexFontParameterInteger
163hi def link plaintexJobParameterInteger     initexJobParameterInteger
164hi def link plaintexPageParameterInteger    initexPageParameterInteger
165hi def link plaintexPageParameterToken      initexParameterToken
166
167let b:current_syntax = "plaintex"
168
169let &cpo = s:cpo_save
170unlet s:cpo_save
171