7
|
1 " Vim syntax file
|
375
|
2 " Language: YAML (YAML Ain't Markup Language)
|
839
|
3 " Maintainer: Nikolai Weibull <now@bitwi.se>
|
1618
|
4 " Latest Revision: 2007-06-27
|
7
|
5
|
375
|
6 if exists("b:current_syntax")
|
7
|
7 finish
|
|
8 endif
|
|
9
|
375
|
10 let s:cpo_save = &cpo
|
|
11 set cpo&vim
|
7
|
12
|
1618
|
13 syn keyword yamlTodo
|
|
14 \ contained
|
|
15 \ TODO
|
|
16 \ FIXME
|
|
17 \ XXX
|
|
18 \ NOTE
|
7
|
19
|
1618
|
20 syn region yamlComment
|
|
21 \ display
|
|
22 \ oneline
|
|
23 \ start='%(^|s)#'
|
|
24 \ end='$'
|
|
25 \ contains=yamlTodo,@Spell
|
7
|
26
|
1618
|
27 syn match yamlNodeProperty
|
|
28 \ '!\%(![^\\^% \t]\+\|[^!][^:/ \t]*\)'
|
|
29
|
|
30 syn match yamlAnchor
|
|
31 \ '&.+'
|
|
32
|
|
33 syn match yamlAlias
|
|
34 \ '*.+'
|
7
|
35
|
1618
|
36 syn match yamlDelimiter
|
|
37 \ '[-,:]'
|
|
38 syn match yamlBlock
|
|
39 \ '[[]{}>|]'
|
|
40 syn match yamlOperator
|
|
41 \ '[?+-]'
|
|
42 syn match yamlKey
|
|
43 \ 'w+(s+w+)*zes*:'
|
7
|
44
|
1618
|
45 syn region yamlString
|
|
46 \ start=+"+
|
|
47 \ skip=+\"+
|
|
48 \ end=+"+
|
|
49 \ contains=yamlEscape
|
|
50 syn region yamlString
|
|
51 \ start=+'+
|
|
52 \ skip=+''+
|
|
53 \ end=+'+
|
|
54 \ contains=yamlSingleEscape
|
|
55 syn match yamlEscape
|
|
56 \ contained
|
|
57 \ display
|
|
58 \ +\[\"abefnrtv^0_ NLP]+
|
|
59 syn match yamlEscape
|
|
60 \ contained
|
|
61 \ display
|
|
62 \ '\xx{2}'
|
|
63 syn match yamlEscape
|
|
64 \ contained
|
|
65 \ display
|
|
66 \ '\ux{4}'
|
|
67 syn match yamlEscape
|
|
68 \ contained
|
|
69 \ display
|
|
70 \ '\Ux{8}'
|
7
|
71
|
|
72 " TODO: how do we get 0x85, 0x2028, and 0x2029 into this?
|
1618
|
73 " XXX: Em, what is going on here? This can't be right. Leave out until we
|
|
74 " figure out what this is meant to do.
|
|
75 "syn match yamlEscape
|
|
76 " \ contained
|
|
77 " \ display
|
|
78 " \ '\%(rn|[rn])'
|
|
79 syn match yamlSingleEscape
|
|
80 \ contained
|
|
81 \ display
|
|
82 \ +''+
|
7
|
83
|
375
|
84 " TODO: sexagecimal and fixed (20:30.15 and 1,230.15)
|
1618
|
85 syn match yamlNumber
|
|
86 \ display
|
|
87 \ '\<[+-]\=\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\='
|
|
88 syn match yamlNumber
|
|
89 \ display
|
|
90 \ '0o+'
|
|
91 syn match yamlNumber
|
|
92 \ display
|
|
93 \ '0xx+'
|
|
94 syn match yamlNumber
|
|
95 \ display
|
|
96 \ '([+-]=[iI]nf)'
|
|
97 syn match yamlNumber
|
|
98 \ display
|
|
99 \ '(NaN)'
|
7
|
100
|
1618
|
101 syn match yamlConstant
|
|
102 \ '<[~yn]>'
|
|
103 syn keyword yamlConstant
|
|
104 \ true
|
|
105 \ True
|
|
106 \ TRUE
|
|
107 \ false
|
|
108 \ False
|
|
109 \ FALSE
|
|
110 syn keyword yamlConstant
|
|
111 \ yes
|
|
112 \ Yes
|
|
113 \ on
|
|
114 \ ON
|
|
115 \ no
|
|
116 \ No
|
|
117 \ off
|
|
118 \ OFF
|
|
119 syn keyword yamlConstant
|
|
120 \ null
|
|
121 \ Null
|
|
122 \ NULL
|
|
123 \ nil
|
|
124 \ Nil
|
|
125 \ NIL
|
7
|
126
|
1618
|
127 syn match yamlTimestamp
|
|
128 \ '\d\d\d\d-\%(1[0-2]\|\d\)-\%(3[0-2]\|2\d\|1\d\|\d\)\%( \%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\d\d [+-]\%([01]\d\|2[0-3]\):[0-5]\d\|t\%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\d\d[+-]\%([01]\d\|2[0-3]\):[0-5]\d\|T\%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\dZ\)\='
|
|
129
|
|
130 syn region yamlDocumentHeader
|
|
131 \ start='---'
|
|
132 \ end='$'
|
|
133 \ contains=yamlDirective
|
|
134 syn match yamlDocumentEnd
|
|
135 \ '\.\.\.'
|
7
|
136
|
1618
|
137 syn match yamlDirective
|
|
138 \ contained
|
|
139 \ '%[^:]+:.+'
|
7
|
140
|
1618
|
141 syn match yamlIndentation
|
|
142 \ '^s*'
|
|
143 \ contains=yamlIndentationError
|
|
144
|
|
145 syn match yamlIndentationError
|
|
146 \ 't'
|
7
|
147
|
375
|
148 hi def link yamlTodo Todo
|
|
149 hi def link yamlComment Comment
|
|
150 hi def link yamlDocumentHeader PreProc
|
|
151 hi def link yamlDocumentEnd PreProc
|
|
152 hi def link yamlDirective Keyword
|
|
153 hi def link yamlNodeProperty Type
|
|
154 hi def link yamlAnchor Type
|
|
155 hi def link yamlAlias Type
|
|
156 hi def link yamlDelimiter Delimiter
|
|
157 hi def link yamlBlock Operator
|
|
158 hi def link yamlOperator Operator
|
|
159 hi def link yamlKey Identifier
|
|
160 hi def link yamlString String
|
|
161 hi def link yamlEscape SpecialChar
|
|
162 hi def link yamlSingleEscape SpecialChar
|
|
163 hi def link yamlNumber Number
|
|
164 hi def link yamlConstant Constant
|
|
165 hi def link yamlTimestamp Number
|
1618
|
166 hi def link yamlIndentationError Error
|
7
|
167
|
|
168 let b:current_syntax = "yaml"
|
|
169
|
375
|
170 let &cpo = s:cpo_save
|
|
171 unlet s:cpo_save
|