diff runtime/syntax/context.vim @ 839:1f3b1021f002 v7.0e05

updated for version 7.0e05
author vimboss
date Fri, 21 Apr 2006 22:12:41 +0000
parents 4fe8e1a7758e
children edc1c9d6dab9
line wrap: on
line diff
--- a/runtime/syntax/context.vim
+++ b/runtime/syntax/context.vim
@@ -1,30 +1,24 @@
 " Vim syntax file
 " Language:         ConTeXt typesetting engine
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-07-04
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-19
 
 if exists("b:current_syntax")
   finish
 endif
 
+runtime! syntax/plaintex.vim
+
 let s:cpo_save = &cpo
 set cpo&vim
 
-syn keyword contextTodo       TODO FIXME XXX NOTE
-
-syn region  contextComment    display oneline start='%' end='$'
-                              \ contains=contextTodo
-syn region  contextComment    display oneline start='^\s*%[CDM]' end='$'
-                              \ contains=ALL
-
-syn match   contextStatement  display '\\[a-zA-Z@]\+' contains=@NoSpell
+if !exists('g:context_include')
+  let g:context_include = ['mp', 'javascript', 'xml']
+endif
 
 syn match   contextBlockDelim display '\\\%(start\|stop\)\a\+'
                               \ contains=@NoSpell
 
-syn match   contextDelimiter  '[][{}]'
-
-syn match   contextEscaped    display '\\\_[\{}|&%$ ]'
 syn region  contextEscaped    display matchgroup=contextPreProc
                               \ start='\\type\z(\A\)' end='\z1'
 syn region  contextEscaped    display matchgroup=contextPreProc
@@ -39,34 +33,52 @@ syn region  contextEscaped    display ma
 syn region  contextEscaped    display matchgroup=contextPreProc
                               \ start='\\Typed\h\+{' end='}'
 
-"syn region  contextMath       matchgroup=contextMath start='\$' end='\$'
-"                              \ contains=contextStatement
-
-syn match   contextBuiltin    '\\\%(newif\|def\|gdef\|global\|let\|glet\|bgroup\)\>'
-                              \ contains=@NoSpell
-syn match   contextBuiltin    '\\\%(begingroup\|egroup\|endgroup\|long\|catcode\)\>'
-                              \ contains=@NoSpell
-syn match   contextBuiltin    '\\\%(unprotect\|unexpanded\|if\|else\|fi\|ifx\)\>'
-                              \ contains=@NoSpell
-syn match   contextBuiltin    '\\\%(futurelet\|protect\)\>' contains=@NoSpell
-syn match   contextBuiltin    '\\\%([lr]q\)\>' contains=@NoSpell
+syn match   contextBuiltin    display contains=@NoSpell
+      \ '\\\%(unprotect\|protect\|unexpanded\)' 
 
 syn match   contextPreProc    '^\s*\\\%(start\|stop\)\=\%(component\|environment\|project\|product\).*$'
                               \ contains=@NoSpell
-syn match   contextPreProc    '^\s*\\input\s\+.*$' 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    /\\[`'"]/
 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\|tt\|rm\|ss\|hw\|cg\)\>'
+syn match   contextStyle      '\\\%(em\|ss\|hw\|cg\|mf\)\>'
                               \ contains=@NoSpell
 syn match   contextFont       '\\\%(CAP\|Cap\|cap\|Caps\|kap\|nocap\)\>'
                               \ contains=@NoSpell
@@ -74,29 +86,18 @@ syn match   contextFont       '\\\%(Word
                               \ contains=@NoSpell
 syn match   contextFont       '\\\%(vi\{1,3}\|ix\|xi\{0,2}\)\>'
                               \ contains=@NoSpell
-syn match   contextFont       '\\\%(tf[abcdx]\|bfx\|[is]lx\)\>'
-                              \ contains=@NoSpell
-syn match   contextFont       '\\\%(b[fsi]\|s[cl]\|it\|os\|mf\)\>'
+syn match   contextFont       '\\\%(tf\|b[si]\|s[cl]\|os\)\%(xx\|[xabcd]\)\=\>'
                               \ contains=@NoSpell
 
-syn match   contextDimension  '[+-]\=\s*\%(\d\+\%([.,]\d*\)\=\|[.,]\d\+\)\s*\%(true\)\=\s*\%(p[tc]\|in\|bp\|c[mc]\|mm\|dd\|sp\|e[mx]\)\>'
-                              \ contains=@NoSpell
-
-hi def link contextTodo       Todo
-hi def link contextComment    Comment
-hi def link contextEscaped    Special
-hi def link contextStatement  Identifier
-hi def link contextMath       String
 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
-hi def link contextType       Type
-hi def link contextDimension  Number
 
 let b:current_syntax = "context"