neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

plaintex.vim (10301B)


      1 " Vim syntax file
      2 " Language:             TeX (plain.tex format)
      3 " Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
      4 " Latest Revision:      2006-10-26
      5 
      6 if exists("b:current_syntax")
      7  finish
      8 endif
      9 
     10 let s:cpo_save = &cpo
     11 set cpo&vim
     12 
     13 syn match   plaintexControlSequence         display contains=@NoSpell
     14      \ '\\[a-zA-Z@]\+'
     15 
     16 runtime! syntax/initex.vim
     17 unlet b:current_syntax
     18 
     19 syn match   plaintexComment                 display
     20      \ contains=ALLBUT,initexComment,plaintexComment
     21      \ '^\s*%[CDM].*$'
     22 
     23 if exists("g:plaintex_delimiters")
     24  syn match   plaintexDelimiter             display '[][{}]'
     25 endif
     26 
     27 syn match   plaintexRepeat                  display contains=@NoSpell
     28      \ '\\\%(loop\|repeat\)\>'
     29 
     30 syn match   plaintexCommand                 display contains=@NoSpell
     31      \ '\\\%(plainoutput\|TeX\)\>'
     32 syn match   plaintexBoxCommand              display contains=@NoSpell
     33      \ '\\\%(null\|strut\)\>'
     34 syn match   plaintexDebuggingCommand        display contains=@NoSpell
     35      \ '\\\%(showhyphens\|tracingall\|wlog\)\>'
     36 syn 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\)\>'
     38 syn 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\)\>'
     40 syn match   plaintexInsertsCommand          display contains=@NoSpell
     41      \ '\\\%(\%(end\|top\)insert\|v\=footnote\)\>'
     42 syn match   plaintexJobCommand              display contains=@NoSpell
     43      \ '\\\%(bye\|fmt\%(name\|version\)\)\>'
     44 syn match   plaintexInsertsCommand          display contains=@NoSpell
     45      \ '\\\%(mid\|page\)insert\>'
     46 syn match   plaintexKernCommand             display contains=@NoSpell
     47      \ '\\\%(en\|\%(neg\)\=thin\)space\>'
     48 syn match   plaintexMacroCommand            display contains=@NoSpell
     49      \ '\\\%(active\|[be]group\|empty\)\>'
     50 syn match   plaintexPageCommand             display contains=@NoSpell
     51      \ '\\\%(\%(super\)\=eject\|nopagenumbers\|\%(normal\|ragged\)bottom\)\>'
     52 syn match   plaintexParagraphCommand        display contains=@NoSpell
     53      \ '\\\%(endgraf\|\%(non\)\=frenchspacing\|hang\|item\%(item\)\=\|narrower\|normalbaselines\|obey\%(lines\|spaces\)\|openup\|proclaim\|\%(tt\)\=raggedright\|textindent\)\>'
     54 syn match   plaintexPenaltiesCommand        display contains=@NoSpell
     55      \ '\\\%(allow\|big\|fil\|good\|med\|no\|small\)\=break\>'
     56 syn match   plaintexRegistersCommand        display contains=@NoSpell
     57      \ '\\\%(advancepageno\|new\%(box\|count\|dimen\|fam\|help\|if\|insert\|language\|muskip\|read\|skip\|toks\|write\)\)\>'
     58 syn match   plaintexTablesCommand           display contains=@NoSpell
     59      \ '&\|\\+\|\\\%(cleartabs\|endline\|hidewidth\|ialign\|multispan\|settabs\|tabalign\)\>'
     60 
     61 if !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='\$\$'
     68 endif
     69 
     70 " Keep this after plaintexMath, as we don’t want math mode started at a \$.
     71 syn 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 
     74 syn cluster plaintexMath
     75      \ contains=plaintexMathCommand,plaintexMathBoxCommand,
     76      \ plaintexMathCharacterCommand,plaintexMathDelimiter,
     77      \ plaintexMathFontsCommand,plaintexMathLetter,plaintexMathSymbol,
     78      \ plaintexMathFunction,plaintexMathOperator,plaintexMathPunctuation,
     79      \ plaintexMathRelation
     80 
     81 syn 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\)\>\)'
     83 syn match   plaintexMathBoxCommand          display contains=@NoSpell contained
     84      \ '\\\%([hv]\=phantom\|mathstrut\|smash\)\>'
     85 syn match   plaintexMathCharacterCommand    display contains=@NoSpell contained
     86      \ '\\\%(b\|bar\|breve\|check\|d\=dots\=\|grave\|hat\|[lv]dots\|tilde\|vec\|wide\%(hat\|tilde\)\)\>'
     87 syn 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\)\>'
     89 syn match   plaintexMathFontsCommand        display contains=@NoSpell contained
     90      \ '\\\%(\%(bf\|it\|sl\|tt\)fam\|cal\|mit\)\>'
     91 syn 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\)\>'
     93 syn 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\)\>'
     95 syn 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\)\>'
     97 syn 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\)\>'
     99 syn match   plaintexMathPunctuation         display contains=@NoSpell contained
    100      \ '\\\%(colon\)\>'
    101 syn 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 
    104 syn match   plaintexParameterDimen          display contains=@NoSpell
    105      \ '\\maxdimen\>'
    106 syn match   plaintexMathParameterDimen      display contains=@NoSpell
    107      \ '\\jot\>'
    108 syn match   plaintexParagraphParameterGlue  display contains=@NoSpell
    109      \ '\\\%(\%(big\|med\|small\)skipamount\|normalbaselineskip\|normallineskip\%(limit\)\=\)\>'
    110 
    111 syn match   plaintexFontParameterInteger    display contains=@NoSpell
    112      \ '\\magstep\%(half\)\=\>'
    113 syn match   plaintexJobParameterInteger     display contains=@NoSpell
    114      \ '\\magnification\>'
    115 syn match   plaintexPageParameterInteger    display contains=@NoSpell
    116      \ '\\pageno\>'
    117 
    118 syn match   plaintexPageParameterToken      display contains=@NoSpell
    119      \ '\\\%(foot\|head\)line\>'
    120 
    121 hi def link plaintexOperator                Operator
    122 
    123 hi def link plaintexDelimiter               Delimiter
    124 
    125 hi def link plaintexControlSequence         Identifier
    126 hi def link plaintexComment                 Comment
    127 hi def link plaintexInclude                 Include
    128 hi def link plaintexRepeat                  Repeat
    129 
    130 hi def link plaintexCommand                 initexCommand
    131 hi def link plaintexBoxCommand              plaintexCommand
    132 hi def link plaintexCharacterCommand        initexCharacterCommand
    133 hi def link plaintexDebuggingCommand        initexDebuggingCommand
    134 hi def link plaintexFontsCommand            initexFontsCommand
    135 hi def link plaintexGlueCommand             plaintexCommand
    136 hi def link plaintexInsertsCommand          plaintexCommand
    137 hi def link plaintexJobCommand              initexJobCommand
    138 hi def link plaintexKernCommand             plaintexCommand
    139 hi def link plaintexMacroCommand            initexMacroCommand
    140 hi def link plaintexPageCommand             plaintexCommand
    141 hi def link plaintexParagraphCommand        plaintexCommand
    142 hi def link plaintexPenaltiesCommand        plaintexCommand
    143 hi def link plaintexRegistersCommand        plaintexCommand
    144 hi def link plaintexTablesCommand           plaintexCommand
    145 
    146 hi def link plaintexMath                    String
    147 hi def link plaintexMathCommand             plaintexCommand
    148 hi def link plaintexMathBoxCommand          plaintexBoxCommand
    149 hi def link plaintexMathCharacterCommand    plaintexCharacterCommand
    150 hi def link plaintexMathDelimiter           plaintexDelimiter
    151 hi def link plaintexMathFontsCommand        plaintexFontsCommand
    152 hi def link plaintexMathLetter              plaintexMathCharacterCommand
    153 hi def link plaintexMathSymbol              plaintexMathLetter
    154 hi def link plaintexMathFunction            Function
    155 hi def link plaintexMathOperator            plaintexOperator
    156 hi def link plaintexMathPunctuation         plaintexCharacterCommand
    157 hi def link plaintexMathRelation            plaintexOperator
    158 
    159 hi def link plaintexParameterDimen          initexParameterDimen
    160 hi def link plaintexMathParameterDimen      initexMathParameterDimen
    161 hi def link plaintexParagraphParameterGlue  initexParagraphParameterGlue
    162 hi def link plaintexFontParameterInteger    initexFontParameterInteger
    163 hi def link plaintexJobParameterInteger     initexJobParameterInteger
    164 hi def link plaintexPageParameterInteger    initexPageParameterInteger
    165 hi def link plaintexPageParameterToken      initexParameterToken
    166 
    167 let b:current_syntax = "plaintex"
    168 
    169 let &cpo = s:cpo_save
    170 unlet s:cpo_save