| " Vim syntax file |
| " Language: TeX (plain.tex format) |
| " Maintainer: Nikolai Weibull <now@bitwi.se> |
| " Latest Revision: 2006-10-26 |
| |
| if exists("b:current_syntax") |
| finish |
| endif |
| |
| let s:cpo_save = &cpo |
| set cpo&vim |
| |
| syn match plaintexControlSequence display contains=@NoSpell |
| \ '\\[a-zA-Z@]\+' |
| |
| runtime! syntax/initex.vim |
| unlet b:current_syntax |
| |
| syn match plaintexComment display |
| \ contains=ALLBUT,initexComment,plaintexComment |
| \ '^\s*%[CDM].*$' |
| |
| if exists("g:plaintex_delimiters") |
| syn match plaintexDelimiter display '[][{}]' |
| endif |
| |
| syn match plaintexRepeat display contains=@NoSpell |
| \ '\\\%(loop\|repeat\)\>' |
| |
| syn match plaintexCommand display contains=@NoSpell |
| \ '\\\%(plainoutput\|TeX\)\>' |
| syn match plaintexBoxCommand display contains=@NoSpell |
| \ '\\\%(null\|strut\)\>' |
| syn match plaintexDebuggingCommand display contains=@NoSpell |
| \ '\\\%(showhyphens\|tracingall\|wlog\)\>' |
| syn match plaintexFontsCommand display contains=@NoSpell |
| \ '\\\%(bf\|\%(five\|seven\)\%(bf\|i\|rm\|sy\)\|it\|oldstyle\|rm\|sl\|ten\%(bf\|ex\|it\=\|rm\|sl\|sy\|tt\)\|tt\)\>' |
| syn match plaintexGlueCommand display contains=@NoSpell |
| \ '\\\%(\%(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\)\>' |
| syn match plaintexInsertsCommand display contains=@NoSpell |
| \ '\\\%(\%(end\|top\)insert\|v\=footnote\)\>' |
| syn match plaintexJobCommand display contains=@NoSpell |
| \ '\\\%(bye\|fmt\%(name\|version\)\)\>' |
| syn match plaintexInsertsCommand display contains=@NoSpell |
| \ '\\\%(mid\|page\)insert\>' |
| syn match plaintexKernCommand display contains=@NoSpell |
| \ '\\\%(en\|\%(neg\)\=thin\)space\>' |
| syn match plaintexMacroCommand display contains=@NoSpell |
| \ '\\\%(active\|[be]group\|empty\)\>' |
| syn match plaintexPageCommand display contains=@NoSpell |
| \ '\\\%(\%(super\)\=eject\|nopagenumbers\|\%(normal\|ragged\)bottom\)\>' |
| syn match plaintexParagraphCommand display contains=@NoSpell |
| \ '\\\%(endgraf\|\%(non\)\=frenchspacing\|hang\|item\%(item\)\=\|narrower\|normalbaselines\|obey\%(lines\|spaces\)\|openup\|proclaim\|\%(tt\)\=raggedright\|textindent\)\>' |
| syn match plaintexPenaltiesCommand display contains=@NoSpell |
| \ '\\\%(allow\|big\|fil\|good\|med\|no\|small\)\=break\>' |
| syn match plaintexRegistersCommand display contains=@NoSpell |
| \ '\\\%(advancepageno\|new\%(box\|count\|dimen\|fam\|help\|if\|insert\|language\|muskip\|read\|skip\|toks\|write\)\)\>' |
| syn match plaintexTablesCommand display contains=@NoSpell |
| \ '&\|\\+\|\\\%(cleartabs\|endline\|hidewidth\|ialign\|multispan\|settabs\|tabalign\)\>' |
| |
| if !exists("g:plaintex_no_math") |
| syn region plaintexMath matchgroup=plaintexMath |
| \ contains=@plaintexMath,@NoSpell |
| \ start='\$' skip='\\\\\|\\\$' end='\$' |
| syn region plaintexMath matchgroup=plaintexMath |
| \ contains=@plaintexMath,@NoSpell keepend |
| \ start='\$\$' skip='\\\\\|\\\$' end='\$\$' |
| endif |
| |
| " Keep this after plaintexMath, as we don’t want math mode started at a \$. |
| syn match plaintexCharacterCommand display contains=@NoSpell |
| \ /\\\%(["#$%&'.=^_`~]\|``\|''\|-\{2,3}\|[?!]`\|^^L\|\~\|\%(a[ae]\|A[AE]\|acute\|[cdHoOPStuvijlL]\|copyright\|d\=dag\|folio\|ldotp\|[lr]q\|oe\|OE\|slash\|ss\|underbar\)\>\)/ |
| |
| syn cluster plaintexMath |
| \ contains=plaintexMathCommand,plaintexMathBoxCommand, |
| \ plaintexMathCharacterCommand,plaintexMathDelimiter, |
| \ plaintexMathFontsCommand,plaintexMathLetter,plaintexMathSymbol, |
| \ plaintexMathFunction,plaintexMathOperator,plaintexMathPunctuation, |
| \ plaintexMathRelation |
| |
| syn match plaintexMathCommand display contains=@NoSpell contained |
| \ '\\\%([!*,;>{}|_^]\|\%([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\)\>\)' |
| syn match plaintexMathBoxCommand display contains=@NoSpell contained |
| \ '\\\%([hv]\=phantom\|mathstrut\|smash\)\>' |
| syn match plaintexMathCharacterCommand display contains=@NoSpell contained |
| \ '\\\%(b\|bar\|breve\|check\|d\=dots\=\|grave\|hat\|[lv]dots\|tilde\|vec\|wide\%(hat\|tilde\)\)\>' |
| syn match plaintexMathDelimiter display contains=@NoSpell contained |
| \ '\\\%(brace\%(vert\)\=\|brack\|cases\|choose\|[lr]\%(angle\|brace\|brack\|ceil\|floor\|group\)\|over\%(brace\|\%(left\|right\)arrow\)\|underbrace\)\>' |
| syn match plaintexMathFontsCommand display contains=@NoSpell contained |
| \ '\\\%(\%(bf\|it\|sl\|tt\)fam\|cal\|mit\)\>' |
| syn match plaintexMathLetter display contains=@NoSpell contained |
| \ '\\\%(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\)\>' |
| syn match plaintexMathSymbol display contains=@NoSpell contained |
| \ '\\\%(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\)\>' |
| syn match plaintexMathFunction display contains=@NoSpell contained |
| \ '\\\%(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\)\>' |
| syn match plaintexMathOperator display contains=@NoSpell contained |
| \ '\\\%(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\)\>' |
| syn match plaintexMathPunctuation display contains=@NoSpell contained |
| \ '\\\%(colon\)\>' |
| syn match plaintexMathRelation display contains=@NoSpell contained |
| \ '\\\%(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\)\>' |
| |
| syn match plaintexParameterDimen display contains=@NoSpell |
| \ '\\maxdimen\>' |
| syn match plaintexMathParameterDimen display contains=@NoSpell |
| \ '\\jot\>' |
| syn match plaintexParagraphParameterGlue display contains=@NoSpell |
| \ '\\\%(\%(big\|med\|small\)skipamount\|normalbaselineskip\|normallineskip\%(limit\)\=\)\>' |
| |
| syn match plaintexFontParameterInteger display contains=@NoSpell |
| \ '\\magstep\%(half\)\=\>' |
| syn match plaintexJobParameterInteger display contains=@NoSpell |
| \ '\\magnification\>' |
| syn match plaintexPageParameterInteger display contains=@NoSpell |
| \ '\\pageno\>' |
| |
| syn match plaintexPageParameterToken display contains=@NoSpell |
| \ '\\\%(foot\|head\)line\>' |
| |
| hi def link plaintexOperator Operator |
| |
| hi def link plaintexDelimiter Delimiter |
| |
| hi def link plaintexControlSequence Identifier |
| hi def link plaintexComment Comment |
| hi def link plaintexInclude Include |
| hi def link plaintexRepeat Repeat |
| |
| hi def link plaintexCommand initexCommand |
| hi def link plaintexBoxCommand plaintexCommand |
| hi def link plaintexCharacterCommand initexCharacterCommand |
| hi def link plaintexDebuggingCommand initexDebuggingCommand |
| hi def link plaintexFontsCommand initexFontsCommand |
| hi def link plaintexGlueCommand plaintexCommand |
| hi def link plaintexInsertsCommand plaintexCommand |
| hi def link plaintexJobCommand initexJobCommand |
| hi def link plaintexKernCommand plaintexCommand |
| hi def link plaintexMacroCommand initexMacroCommand |
| hi def link plaintexPageCommand plaintexCommand |
| hi def link plaintexParagraphCommand plaintexCommand |
| hi def link plaintexPenaltiesCommand plaintexCommand |
| hi def link plaintexRegistersCommand plaintexCommand |
| hi def link plaintexTablesCommand plaintexCommand |
| |
| hi def link plaintexMath String |
| hi def link plaintexMathCommand plaintexCommand |
| hi def link plaintexMathBoxCommand plaintexBoxCommand |
| hi def link plaintexMathCharacterCommand plaintexCharacterCommand |
| hi def link plaintexMathDelimiter plaintexDelimiter |
| hi def link plaintexMathFontsCommand plaintexFontsCommand |
| hi def link plaintexMathLetter plaintexMathCharacterCommand |
| hi def link plaintexMathSymbol plaintexMathLetter |
| hi def link plaintexMathFunction Function |
| hi def link plaintexMathOperator plaintexOperator |
| hi def link plaintexMathPunctuation plaintexCharacterCommand |
| hi def link plaintexMathRelation plaintexOperator |
| |
| hi def link plaintexParameterDimen initexParameterDimen |
| hi def link plaintexMathParameterDimen initexMathParameterDimen |
| hi def link plaintexParagraphParameterGlue initexParagraphParameterGlue |
| hi def link plaintexFontParameterInteger initexFontParameterInteger |
| hi def link plaintexJobParameterInteger initexJobParameterInteger |
| hi def link plaintexPageParameterInteger initexPageParameterInteger |
| hi def link plaintexPageParameterToken initexParameterToken |
| |
| let b:current_syntax = "plaintex" |
| |
| let &cpo = s:cpo_save |
| unlet s:cpo_save |