diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2014-07-11 04:05:51 +0000 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2014-07-29 02:12:31 +0000 |
commit | a98a6996c291b3e300d27b791eded9eed333d677 (patch) | |
tree | 51d92f6cac128f938cd0aaa9a8dd0ce7a83d63a9 /runtime/syntax/context.vim | |
parent | 66bc13163398786c88e20b7cdd61c66978b4d3fb (diff) | |
download | rneovim-a98a6996c291b3e300d27b791eded9eed333d677.tar.gz rneovim-a98a6996c291b3e300d27b791eded9eed333d677.tar.bz2 rneovim-a98a6996c291b3e300d27b791eded9eed333d677.zip |
re-integrate runtime/ vim-patch:0 #938
Vim runtime files based on 7.4.384 / hg changeset 7090d7f160f7
Excluding:
Amiga icons (*.info, icons/)
doc/hangulin.txt
tutor/
spell/
lang/ (only used for menu translations)
macros/maze/, macros/hanoi/, macros/life/, macros/urm/
These were used to test vi compatibility.
termcap
"Demonstration of a termcap file (for the Amiga and Archimedes)"
Helped-by: Rich Wareham <rjw57@cam.ac.uk>
Helped-by: John <john.schmidt.h@gmail.com>
Helped-by: Yann <yann@yann-salaun.com>
Helped-by: Christophe Badoit <c.badoit@lesiteimmo.com>
Helped-by: drasill <github@tof2k.com>
Helped-by: Tae Sandoval Murgan <taecilla@gmail.com>
Helped-by: Lowe Thiderman <lowe.thiderman@gmail.com>
Diffstat (limited to 'runtime/syntax/context.vim')
-rw-r--r-- | runtime/syntax/context.vim | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/runtime/syntax/context.vim b/runtime/syntax/context.vim new file mode 100644 index 0000000000..225cc6efc2 --- /dev/null +++ b/runtime/syntax/context.vim @@ -0,0 +1,108 @@ +" 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 |