blob: 4649b6c8f2a49d28baec95d7037c95af1e7f897f [file] [log] [blame]
Bram Moolenaar42eeac32005-06-29 22:40:58 +00001" Vim syntax file
2" Language: ConTeXt typesetting engine
3" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
4" Latest Revision: 2005-06-29
5
6if exists("b:current_syntax")
7 finish
8endif
9
10let s:cpo_save = &cpo
11set cpo&vim
12
13syn keyword contextTodo TODO FIXME XXX NOTE
14
15syn region contextComment display oneline matchgroup=contextComment
16 \ start='%' end='$' contains=contextTodo
17syn region contextComment display oneline matchgroup=contextComment
18 \ start='^\s*%[CDM]' end='$' contains=ALL
19
20syn match contextStatement display '\\[a-zA-Z@]\+' contains=@NoSpell
21
22syn match contextBlockDelim display '\\\%(start\|stop\)\a\+'
23 \ contains=@NoSpell
24
25syn match contextDelimiter '[][{}]'
26
27syn match contextEscaped display '\\\_[\{}|&%$ ]'
28syn region contextEscaped display matchgroup=contextPreProc
29 \ start='\\type\z(\A\)' end='\z1'
30syn region contextEscaped display matchgroup=contextPreProc
31 \ start='\\type\={' end='}'
32syn region contextEscaped display matchgroup=contextPreProc
33 \ start='\\type\=<<' end='>>'
34syn region contextEscaped matchgroup=contextPreProc
35 \ start='\\start\z(\a*\%(typing\|typen\)\)'
36 \ end='\\stop\z1'
37syn region contextEscaped display matchgroup=contextPreProc
38 \ start='\\\h\+Type{' end='}'
39syn region contextEscaped display matchgroup=contextPreProc
40 \ start='\\Typed\h\+{' end='}'
41
42"syn region contextMath matchgroup=contextMath start='\$' end='\$'
43" \ contains=contextStatement
44
45syn match contextBuiltin '\\\%(newif\|def\|gdef\|global\|let\|glet\|bgroup\)\>'
46 \ contains=@NoSpell
47syn match contextBuiltin '\\\%(begingroup\|egroup\|endgroup\|long\|catcode\)\>'
48 \ contains=@NoSpell
49syn match contextBuiltin '\\\%(unprotect\|unexpanded\|if\|else\|fi\|ifx\)\>'
50 \ contains=@NoSpell
51syn match contextBuiltin '\\\%(futurelet\|protect\)\>' contains=@NoSpell
52syn match contextBuiltin '\\\%([lr]q\)\>' contains=@NoSpell
53
54syn match contextPreProc '^\s*\\\%(start\|stop\)\=\%(component\|environment\|project\|product\).*$'
55 \ contains=@NoSpell
56syn match contextPreProc '^\s*\\input\s\+.*$' contains=@NoSpell
57
58syn match contextSectioning '\\chapter\>' contains=@NoSpell
59syn match contextSectioning '\\\%(sub\)*section\>' contains=@NoSpell
60
61syn match contextSpecial '\\crlf\>\|\\par\>\|-\{2,3}\||[<>/]\=|'
62 \ contains=@NoSpell
63syn match contextSpecial '\\[`'"]'
64syn match contextSpecial +\\char\%(\d\{1,3}\|'\o\{1,3}\|"\x\{1,2}\)\>+
65 \ contains=@NoSpell
66syn match contextSpecial '\^\^.'
67syn match contextSpecial '`\%(\\.\|\^\^.\|.\)'
68
69syn match contextStyle '\\\%(em\|tt\|rm\|ss\|hw\|cg\)\>'
70 \ contains=@NoSpell
71syn match contextFont '\\\%(CAP\|Cap\|cap\|Caps\|kap\|nocap\)\>'
72 \ contains=@NoSpell
73syn match contextFont '\\\%(Word\|WORD\|Words\|WORDS\)\>'
74 \ contains=@NoSpell
75syn match contextFont '\\\%(vi\{1,3}\|ix\|xi\{0,2}\)\>'
76 \ contains=@NoSpell
77syn match contextFont '\\\%(tf[abcdx]\|bfx\|[is]lx\)\>'
78 \ contains=@NoSpell
79syn match contextFont '\\\%(b[fsi]\|s[cl]\|it\|os\|mf\)\>'
80 \ contains=@NoSpell
81
82syn match contextDimension '[+-]\=\s*\%(\d\+\%([.,]\d*\)\=\|[.,]\d\+\)\s*\%(true\)\=\s*\%(p[tc]\|in\|bp\|c[mc]\|mm\|dd\|sp\|e[mx]\)\>'
83 \ contains=@NoSpell
84
85hi def link contextTodo Todo
86hi def link contextComment Comment
87hi def link contextEscaped Special
88hi def link contextStatement Identifier
89hi def link contextMath String
90hi def link contextBlockDelim Keyword
91hi def link contextBuiltin Keyword
92hi def link contextDelimiter Delimiter
93hi def link contextPreProc PreProc
94hi def link contextSectioning PreProc
95hi def link contextSpecial Special
96hi def link contextStyle contextType
97hi def link contextFont contextType
98hi def link contextType Type
99hi def link contextDimension Number
100
101let b:current_syntax = "context"
102
103let &cpo = s:cpo_save
104unlet s:cpo_save