Mercurial > vim
view runtime/syntax/context.vim @ 32543:ca42967a3253 v9.0.1603
patch 9.0.1603: display wrong if scrolling multiple lines with 'smoothscroll'
Commit: https://github.com/vim/vim/commit/3c802277604a6b21110e41bedfe4c937ba7c2b7d
Author: zeertzjq <zeertzjq@outlook.com>
Date: Sat Jun 3 22:08:33 2023 +0100
patch 9.0.1603: display wrong if scrolling multiple lines with 'smoothscroll'
Problem: Display wrong when scrolling multiple lines with 'smoothscroll'
set.
Solution: Redraw when w_skipcol changed. (closes #12477, closes #12468)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 03 Jun 2023 23:15:04 +0200 |
parents | 2acb87ee55fc |
children | d81556766132 |
line wrap: on
line source
vim9script # Vim syntax file # Language: ConTeXt typesetting engine # Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com> # Former Maintainers: Nikolai Weibull <now@bitwi.se> # Latest Revision: 2022 Aug 12 if exists("b:current_syntax") finish endif # Dictionary of (filetype, group) pairs to highlight between \startGROUP \stopGROUP. var context_include = get(b:, 'context_include', get(g:, 'context_include', {'xml': 'XML'})) # Deprecation warning if type(context_include) ==# type([]) echomsg "[ConTeXt] b:context_include/g:context_include must be Dictionaries." context_include = {'xml': 'XML'} endif syn iskeyword @,48-57,_,!,?,a-z,A-Z,192-255 syn spell toplevel runtime! syntax/shared/context-data-context.vim runtime! syntax/shared/context-data-interfaces.vim runtime! syntax/shared/context-data-tex.vim syn match contextCommand '\\\k\+\>' display contains=@NoSpell # ConTeXt options, i.e., [...] blocks syn region contextOptions matchgroup=contextDelimiter start='\[' end=']\|\ze\\stop' skip='\\\[\|\\\]' contains=TOP,@Spell # Highlight braces syn match contextDelimiter '[{}]' # Comments syn match contextComment '\%(\_^\|[^\\]\)\%(\\\\\)*\zs%.*$' display contains=contextTodo,contextMagicLine syn match contextComment '^\s*%[CDM].*$' display contains=contextTodo,contextMagicLine syn keyword contextTodo TODO FIXME XXX NOTE contained syn match contextMagicLine '^\s*%\s*!TEX.*$' contained syn match contextBlockDelim '\\\%(start\|stop\)\k\+' contains=@NoSpell syn region contextEscaped matchgroup=contextPreProc start='\\type\%(\s*\|\n\)*\z([^A-Za-z%]\)' end='\z1' syn region contextEscaped matchgroup=contextPreProc start='\\type\=\%(\s\|\n\)*{' end='}' syn region contextEscaped matchgroup=contextPreProc start='\\type\=\%(\s*\|\n\)*<<' end='>>' syn region contextEscaped matchgroup=contextPreProc \ start='\\start\z(\a*\%(typing\|typen\)\)' \ end='\\stop\z1' contains=contextComment keepend syn region contextEscaped matchgroup=contextPreProc start='\\\h\+Type\%(\s\|\n\)*{' end='}' syn region contextEscaped matchgroup=contextPreProc start='\\Typed\h\+\%(\s\|\n\)*{' end='}' syn match contextBuiltin '\\unexpanded\>' display contains=@NoSpell # \unprotect... \protect regions syn region contextUnprotect matchgroup=contextBuiltin start='\\unprotect' end='\\protect' contains=TOP syn match contextSequence '\\[a-zA-Z]*[@_!?]\+[a-zA-Z@_!?]*' contains=@NoSpell contained containedin=contextUnprotect # Math syn match contextMathCmd '\\m\%(ath\%(ematics\)\=\)\=\>' syn region contextInlineMath matchgroup=contextMathDelim start='\$' skip='\\\\\|\\\$' end='\$' syn region contextDisplayMath matchgroup=contextMathDelim start='\$\$' skip='\\\\\|\\\$' end='\$\$' keepend syn region contextDisplayMath matchgroup=contextBlockDelim start='\\startformula' end='\\stopformula' contains=TOP # MetaFun b:mp_metafun = 1 syn include @mpTop syntax/mp.vim unlet b:current_syntax syn region contextMPGraphic matchgroup=contextBlockDelim \ start='\\start\z(MP\%(clip\|code\|definitions\|drawing\|environment\|extensions\|inclusions\|initializations\|page\|\)\)\>.*$' \ end='\\stop\z1' \ contains=@mpTop,@NoSpell syn region contextMPGraphic matchgroup=contextBlockDelim \ start='\\start\z(\%(\%[re]usable\|use\|unique\|static\)MPgraphic\|staticMPfigure\|uniqueMPpagegraphic\)\>.*$' \ end='\\stop\z1' \ contains=@mpTop,@NoSpell # Lua syn include @luaTop syntax/lua.vim unlet b:current_syntax syn region contextLuaCode matchgroup=contextBlockDelim \ start='\\startluacode\>' \ end='\\stopluacode\>' keepend \ contains=@luaTop,@NoSpell syn match contextDirectLua "\\\%(directlua\|ctxlua\)\>\%(\s*%.*$\)\=" \ nextgroup=contextBeginEndLua skipwhite skipempty \ contains=contextComment syn region contextBeginEndLua matchgroup=contextSpecial \ start="{" end="}" skip="\\[{}]" \ contained contains=@luaTop,@NoSpell for synname in keys(context_include) execute 'syn include @' .. synname .. 'Top' 'syntax/' .. synname .. '.vim' unlet b:current_syntax execute 'syn region context' .. context_include[synname] .. 'Code' \ 'matchgroup=contextBlockDelim' \ 'start=+\\start' .. context_include[synname] .. '\w*+' \ 'end=+\\stop' .. context_include[synname] .. '\w*+' \ 'contains=@' .. synname .. 'Top,@NoSpell' endfor syn match contextSectioning '\\\%(start\|stop\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>' contains=@NoSpell syn match contextSpecial '\\par\>\|-\{2,3}\||[<>/]\=|' contains=@NoSpell syn match contextSpecial /\\[`'"]/ syn match contextSpecial +\\char\%(\d\{1,3}\|'\o\{1,3}\|"\x\{1,2}\)\>+ contains=@NoSpell syn match contextSpecial '\^\^.' syn match contextSpecial '`\%(\\.\|\^\^.\|.\)' syn match contextStyle '\\\%(em\|ss\|hw\|cg\|mf\)\>' contains=@NoSpell syn match contextFont '\\\%(CAP\|Cap\|cap\|Caps\|kap\|nocap\)\>' contains=@NoSpell syn match contextFont '\\\%(Word\|WORD\|Words\|WORDS\)\>' contains=@NoSpell syn match contextFont '\\\%(vi\{1,3}\|ix\|xi\{0,2}\)\>' contains=@NoSpell syn match contextFont '\\\%(tf\|b[si]\|s[cl]\|os\)\%(xx\|[xabcd]\)\=\>' contains=@NoSpell hi def link contextBlockDelim Keyword hi def link contextBuiltin Keyword hi def link contextCommand Keyword hi def link contextComment Comment hi def link contextDelimiter Delimiter hi def link contextDirectLua Keyword hi def link contextEscaped String hi def link contextFont contextType hi def link contextKeyword Keyword hi def link contextInlineMath String hi def link contextMagicLine PreProc hi def link contextMathCmd Identifier hi def link contextMathDelim Delimiter hi def link contextOptions Typedef hi def link contextPreProc PreProc hi def link contextSectioning PreProc hi def link contextSequence Identifier hi def link contextSpecial Special hi def link contextStyle contextType hi def link contextTodo Todo hi def link contextType Type b:current_syntax = 'context' # vim: sw=2 fdm=marker