Mercurial > vim
view runtime/syntax/context.vim @ 9246:6ee88fa405b3 v7.4.1906
commit https://github.com/vim/vim/commit/5f1032d2a55b9417a0a6fa225e35089c98a5a419
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Jun 7 22:16:36 2016 +0200
patch 7.4.1906
Problem: Collapsing channel buffers and searching for NL does not work
properly. (Xavier de Gary, Ramel Eshed)
Solution: Do not assume the buffer contains a NUL or not. Change NUL bytes
to NL to avoid the string is truncated.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 07 Jun 2016 22:30:06 +0200 |
parents | edc1c9d6dab9 |
children | 07d2b5a3b7cc |
line wrap: on
line source
" Vim syntax file " Language: ConTeXt typesetting engine " Maintainer: Nikolai Weibull <now@bitwi.se> " Latest Revision: 2006-08-10 if exists("b:current_syntax") finish endif runtime! syntax/plaintex.vim unlet b:current_syntax let s:cpo_save = &cpo set cpo&vim if !exists('g:context_include') let g:context_include = ['mp', 'javascript', 'xml'] endif syn spell toplevel syn match contextBlockDelim display '\\\%(start\|stop\)\a\+' \ contains=@NoSpell syn region contextEscaped display matchgroup=contextPreProc \ start='\\type\z(\A\)' end='\z1' syn region contextEscaped display matchgroup=contextPreProc \ start='\\type\={' end='}' syn region contextEscaped display matchgroup=contextPreProc \ start='\\type\=<<' end='>>' syn region contextEscaped matchgroup=contextPreProc \ start='\\start\z(\a*\%(typing\|typen\)\)' \ end='\\stop\z1' contains=plaintexComment keepend syn region contextEscaped display matchgroup=contextPreProc \ start='\\\h\+Type{' end='}' syn region contextEscaped display matchgroup=contextPreProc \ start='\\Typed\h\+{' end='}' syn match contextBuiltin display contains=@NoSpell \ '\\\%(unprotect\|protect\|unexpanded\)' syn match contextPreProc '^\s*\\\%(start\|stop\)\=\%(component\|environment\|project\|product\).*$' \ contains=@NoSpell if index(g:context_include, 'mp') != -1 syn include @mpTop syntax/mp.vim unlet b:current_syntax syn region contextMPGraphic transparent matchgroup=contextBlockDelim \ start='\\start\z(\a*MPgraphic\|MP\%(page\|inclusions\|run\)\).*' \ end='\\stop\z1' \ contains=@mpTop endif " TODO: also need to implement this for \\typeC or something along those " lines. function! s:include_syntax(name, group) if index(g:context_include, a:name) != -1 execute 'syn include @' . a:name . 'Top' 'syntax/' . a:name . '.vim' unlet b:current_syntax execute 'syn region context' . a:group . 'Code' \ 'transparent matchgroup=contextBlockDelim' \ 'start=+\\start' . a:group . '+ end=+\\stop' . a:group . '+' \ 'contains=@' . a:name . 'Top' endif endfunction call s:include_syntax('c', 'C') call s:include_syntax('ruby', 'Ruby') call s:include_syntax('javascript', 'JS') call s:include_syntax('xml', 'XML') syn match contextSectioning '\\chapter\>' contains=@NoSpell syn match contextSectioning '\\\%(sub\)*section\>' contains=@NoSpell syn match contextSpecial '\\crlf\>\|\\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 contextDelimiter Delimiter hi def link contextPreProc PreProc hi def link contextSectioning PreProc hi def link contextSpecial Special hi def link contextType Type hi def link contextStyle contextType hi def link contextFont contextType let b:current_syntax = "context" let &cpo = s:cpo_save unlet s:cpo_save