Runtime files update
[MacVim.git] / runtime / syntax / yaml.vim
blobb8a888441480d1b69982b77176e02249a05e0b49
1 " Vim syntax file
2 " Language:         YAML (YAML Ain't Markup Language)
3 " Maintainer:       Nikolai Weibull <now@bitwi.se>
4 " Latest Revision:  2007-06-27
6 if exists("b:current_syntax")
7   finish
8 endif
10 let s:cpo_save = &cpo
11 set cpo&vim
13 syn keyword yamlTodo
14       \ contained
15       \ TODO
16       \ FIXME
17       \ XXX
18       \ NOTE
20 syn region  yamlComment
21       \ display
22       \ oneline
23       \ start='%(^|s)#'
24       \ end='$'
25       \ contains=yamlTodo,@Spell
27 syn match   yamlNodeProperty
28       \ '!\%(![^\\^% \t]\+\|[^!][^:/ \t]*\)'
30 syn match   yamlAnchor
31       \ '&.+'
33 syn match   yamlAlias
34       \ '*.+'
36 syn match   yamlDelimiter
37       \ '[-,:]'
38 syn match   yamlBlock
39       \ '[[]{}>|]'
40 syn match   yamlOperator
41       \ '[?+-]'
42 syn match   yamlKey
43       \ 'w+(s+w+)*zes*:'
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}'
72 " TODO: how do we get 0x85, 0x2028, and 0x2029 into this?
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       \ +''+
84 " TODO: sexagecimal and fixed (20:30.15 and 1,230.15)
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)'
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
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\)\='
130 syn region  yamlDocumentHeader
131       \ start='---'
132       \ end='$'
133       \ contains=yamlDirective
134 syn match   yamlDocumentEnd
135       \ '...'
137 syn match   yamlDirective
138       \ contained
139       \ '%[^:]+:.+'
141 syn match   yamlIndentation
142       \ '^s*'
143       \ contains=yamlIndentationError
145 syn match   yamlIndentationError
146       \ 't'
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
166 hi def link yamlIndentationError  Error
168 let b:current_syntax = "yaml"
170 let &cpo = s:cpo_save
171 unlet s:cpo_save