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