aboutsummaryrefslogtreecommitdiff
path: root/runtime/syntax/context.vim
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2014-07-11 04:05:51 +0000
committerJustin M. Keyes <justinkz@gmail.com>2014-07-29 02:12:31 +0000
commita98a6996c291b3e300d27b791eded9eed333d677 (patch)
tree51d92f6cac128f938cd0aaa9a8dd0ce7a83d63a9 /runtime/syntax/context.vim
parent66bc13163398786c88e20b7cdd61c66978b4d3fb (diff)
downloadrneovim-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.vim108
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