Mercurial > vim
view runtime/syntax/plaintex.vim @ 34194:a522c6c0127b v9.1.0047
patch 9.1.0047: issues with temp curwin/buf while cmdwin is open
Commit: https://github.com/vim/vim/commit/988f74311c26ea9917e84fbae608de226dba7e5f
Author: Sean Dewar <seandewar@users.noreply.github.com>
Date: Wed Aug 16 14:17:36 2023 +0100
patch 9.1.0047: issues with temp curwin/buf while cmdwin is open
Problem: Things that temporarily change/restore curwin/buf (e.g:
win_execute, some autocmds) may break assumptions that
curwin/buf is the cmdwin when "cmdwin_type != 0", causing
issues.
Solution: Expose the cmdwin's real win/buf and check that instead. Also
try to ensure these variables are NULL if "cmdwin_type == 0",
allowing them to be used directly in most cases without
checking cmdwin_type. (Sean Dewar)
Alternatively, we could ban win_execute in the cmdwin and audit all places that
temporarily change/restore curwin/buf, but I didn't notice any problems arising
from allowing this (standard cmdwin restrictions still apply, so things that may
actually break the cmdwin are still forbidden).
closes: #12819
Signed-off-by: Sean Dewar <seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 23 Jan 2024 23:00:04 +0100 |
parents | 1218c5353e2b |
children |
line wrap: on
line source
" Vim syntax file " Language: TeX (plain.tex format) " Previous 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