blob: 6ec806a4cb863b5c691056dec6df9bcbf4044360 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +02002" Language: YAML (YAML Ain't Markup Language) 1.2
3" Maintainer: Nikolai Pavlov <zyx.vim@gmail.com>
4" First author: Nikolai Weibull <now@bitwi.se>
itchynycc7597c2024-04-01 14:54:36 +02005" Latest Revision: 2024-04-01
Bram Moolenaar071d4272004-06-13 20:20:40 +00006
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +02007if exists('b:current_syntax')
8 finish
Bram Moolenaar071d4272004-06-13 20:20:40 +00009endif
10
Bram Moolenaar42eeac32005-06-29 22:40:58 +000011let s:cpo_save = &cpo
12set cpo&vim
Bram Moolenaar071d4272004-06-13 20:20:40 +000013
Bram Moolenaar5a5f4592015-04-13 12:43:06 +020014" Choose the schema to use
15" TODO: Validate schema
16if !exists('b:yaml_schema')
itchynycc7597c2024-04-01 14:54:36 +020017 if exists('g:yaml_schema')
18 let b:yaml_schema = g:yaml_schema
19 else
20 let b:yaml_schema = 'core'
21 endif
Bram Moolenaar5a5f4592015-04-13 12:43:06 +020022endif
23
24let s:ns_char = '\%([\n\r\uFEFF \t]\@!\p\)'
25let s:ns_word_char = '[[:alnum:]_\-]'
26let s:ns_uri_char = '\%(%\x\x\|'.s:ns_word_char.'\|[#/;?:@&=+$,.!~*''()[\]]\)'
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +020027let s:ns_tag_char = '\%(%\x\x\|'.s:ns_word_char.'\|[#/;?:@&=+$.~*''()]\)'
Bram Moolenaar5a5f4592015-04-13 12:43:06 +020028let s:c_indicator = '[\-?:,[\]{}#&*!|>''"%@`]'
29let s:c_flow_indicator = '[,[\]{}]'
30
itchynycc7597c2024-04-01 14:54:36 +020031let s:ns_anchor_char = substitute(s:ns_char, '\v\C[\zs', '\=s:c_flow_indicator[1:-2]', '')
Bram Moolenaar5a5f4592015-04-13 12:43:06 +020032let s:ns_char_without_c_indicator = substitute(s:ns_char, '\v\C[\zs', '\=s:c_indicator[1:-2]', '')
33
34let s:_collection = '[^\@!\(\%(\\\.\|\[^\\\]]\)\+\)]'
35let s:_neg_collection = '[^\(\%(\\\.\|\[^\\\]]\)\+\)]'
36function s:SimplifyToAssumeAllPrintable(p)
37 return substitute(a:p, '\V\C\\%('.s:_collection.'\\@!\\p\\)', '[^\1]', '')
38endfunction
39let s:ns_char = s:SimplifyToAssumeAllPrintable(s:ns_char)
itchynycc7597c2024-04-01 14:54:36 +020040let s:ns_anchor_char = s:SimplifyToAssumeAllPrintable(s:ns_anchor_char)
Bram Moolenaar5a5f4592015-04-13 12:43:06 +020041let s:ns_char_without_c_indicator = s:SimplifyToAssumeAllPrintable(s:ns_char_without_c_indicator)
Bram Moolenaar5a5f4592015-04-13 12:43:06 +020042
43function s:SimplifyAdjacentCollections(p)
44 return substitute(a:p, '\V\C'.s:_collection.'\\|'.s:_collection, '[\1\2]', 'g')
45endfunction
46let s:ns_uri_char = s:SimplifyAdjacentCollections(s:ns_uri_char)
47let s:ns_tag_char = s:SimplifyAdjacentCollections(s:ns_tag_char)
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +020048
49let s:c_verbatim_tag = '!<'.s:ns_uri_char.'\+>'
50let s:c_named_tag_handle = '!'.s:ns_word_char.'\+!'
51let s:c_secondary_tag_handle = '!!'
52let s:c_primary_tag_handle = '!'
53let s:c_tag_handle = '\%('.s:c_named_tag_handle.
54 \ '\|'.s:c_secondary_tag_handle.
55 \ '\|'.s:c_primary_tag_handle.'\)'
56let s:c_ns_shorthand_tag = s:c_tag_handle . s:ns_tag_char.'\+'
57let s:c_non_specific_tag = '!'
58let s:c_ns_tag_property = s:c_verbatim_tag.
59 \ '\|'.s:c_ns_shorthand_tag.
60 \ '\|'.s:c_non_specific_tag
61
itchynycc7597c2024-04-01 14:54:36 +020062let s:c_ns_anchor_name = s:ns_anchor_char.'\+'
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +020063let s:c_ns_anchor_property = '&'.s:c_ns_anchor_name
64let s:c_ns_alias_node = '\*'.s:c_ns_anchor_name
itchynycc7597c2024-04-01 14:54:36 +020065let s:c_ns_properties = '\%(\%('.s:c_ns_tag_property.'\|'.s:c_ns_anchor_property.'\)\s\+\)\+'
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +020066
67let s:ns_directive_name = s:ns_char.'\+'
68
69let s:ns_local_tag_prefix = '!'.s:ns_uri_char.'*'
70let s:ns_global_tag_prefix = s:ns_tag_char.s:ns_uri_char.'*'
71let s:ns_tag_prefix = s:ns_local_tag_prefix.
72 \ '\|'.s:ns_global_tag_prefix
73
74let s:ns_plain_safe_out = s:ns_char
75let s:ns_plain_safe_in = '\%('.s:c_flow_indicator.'\@!'.s:ns_char.'\)'
76
Bram Moolenaar5a5f4592015-04-13 12:43:06 +020077let s:ns_plain_safe_in = substitute(s:ns_plain_safe_in, '\V\C\\%('.s:_collection.'\\@!'.s:_neg_collection.'\\)', '[^\1\2]', '')
78let s:ns_plain_safe_in_without_colhash = substitute(s:ns_plain_safe_in, '\V\C'.s:_neg_collection, '[^\1:#]', '')
79let s:ns_plain_safe_out_without_colhash = substitute(s:ns_plain_safe_out, '\V\C'.s:_neg_collection, '[^\1:#]', '')
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +020080
Bram Moolenaar5a5f4592015-04-13 12:43:06 +020081let s:ns_plain_first_in = '\%('.s:ns_char_without_c_indicator.'\|[?:\-]\%('.s:ns_plain_safe_in.'\)\@=\)'
82let s:ns_plain_first_out = '\%('.s:ns_char_without_c_indicator.'\|[?:\-]\%('.s:ns_plain_safe_out.'\)\@=\)'
83
84let s:ns_plain_char_in = '\%('.s:ns_char.'#\|:'.s:ns_plain_safe_in.'\|'.s:ns_plain_safe_in_without_colhash.'\)'
85let s:ns_plain_char_out = '\%('.s:ns_char.'#\|:'.s:ns_plain_safe_out.'\|'.s:ns_plain_safe_out_without_colhash.'\)'
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +020086
87let s:ns_plain_out = s:ns_plain_first_out . s:ns_plain_char_out.'*'
88let s:ns_plain_in = s:ns_plain_first_in . s:ns_plain_char_in.'*'
89
90
Bram Moolenaare37d50a2008-08-06 17:06:04 +000091syn keyword yamlTodo contained TODO FIXME XXX NOTE
Bram Moolenaar071d4272004-06-13 20:20:40 +000092
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +020093syn region yamlComment display oneline start='\%\(^\|\s\)#' end='$'
94 \ contains=yamlTodo
Bram Moolenaar071d4272004-06-13 20:20:40 +000095
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +020096execute 'syn region yamlDirective oneline start='.string('^\ze%'.s:ns_directive_name.'\s\+').' '.
97 \ 'end="$" '.
98 \ 'contains=yamlTAGDirective,'.
99 \ 'yamlYAMLDirective,'.
100 \ 'yamlReservedDirective '.
101 \ 'keepend'
Bram Moolenaar071d4272004-06-13 20:20:40 +0000102
itchynycc7597c2024-04-01 14:54:36 +0200103syn match yamlTAGDirective /%TAG\ze\s/ contained nextgroup=yamlTagHandle skipwhite
104execute 'syn match yamlTagHandle' string(s:c_tag_handle) 'contained nextgroup=yamlTagPrefix skipwhite'
105execute 'syn match yamlTagPrefix' string(s:ns_tag_prefix) 'contained nextgroup=yamlComment skipwhite'
Bram Moolenaar071d4272004-06-13 20:20:40 +0000106
itchynycc7597c2024-04-01 14:54:36 +0200107syn match yamlYAMLDirective /%YAML\ze\s/ contained nextgroup=yamlYAMLVersion skipwhite
108syn match yamlYAMLVersion /\d\+\.\d\+/ contained nextgroup=yamlComment skipwhite
Bram Moolenaar071d4272004-06-13 20:20:40 +0000109
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +0200110execute 'syn match yamlReservedDirective contained nextgroup=yamlComment '.
111 \string('%\%(\%(TAG\|YAML\)\s\)\@!'.s:ns_directive_name)
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000112
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +0200113syn region yamlFlowString matchgroup=yamlFlowStringDelimiter start='"' skip='\\"' end='"'
itchynycc7597c2024-04-01 14:54:36 +0200114 \ contains=yamlEscape contained nextgroup=yamlFlowMappingDelimiter,yamlComment skipwhite
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +0200115syn region yamlFlowString matchgroup=yamlFlowStringDelimiter start="'" skip="''" end="'"
itchynycc7597c2024-04-01 14:54:36 +0200116 \ contains=yamlSingleEscape contained nextgroup=yamlFlowMappingDelimiter,yamlComment skipwhite
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +0200117syn match yamlEscape contained '\\\%([\\"abefnrtv\^0_ NLP\n]\|x\x\x\|u\x\{4}\|U\x\{8}\)'
118syn match yamlSingleEscape contained "''"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000119
Bram Moolenaar5a5f4592015-04-13 12:43:06 +0200120syn cluster yamlConstant contains=yamlBool,yamlNull
121
itchynycc7597c2024-04-01 14:54:36 +0200122syn cluster yamlFlowNode contains=yamlFlowString,yamlFlowMapping,yamlFlowCollection
123syn cluster yamlFlowNode add=yamlFlowMappingKey,yamlFlowMappingKeyStart,yamlFlowMappingMerge
124syn cluster yamlFlowNode add=@yamlConstant,yamlPlainScalar,yamlFloat,yamlComment
125syn cluster yamlFlowNode add=yamlTimestamp,yamlInteger,yamlAlias,yamlFlowNodeProperties
126syn region yamlFlowMapping matchgroup=yamlFlowIndicator start='{\@<!{{\@!' end='}' contains=@yamlFlowNode
127syn region yamlFlowCollection matchgroup=yamlFlowIndicator start='\[' end='\]' contains=@yamlFlowNode
Bram Moolenaar071d4272004-06-13 20:20:40 +0000128
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +0200129execute 'syn match yamlPlainScalar /'.s:ns_plain_out.'/'
130execute 'syn match yamlPlainScalar contained /'.s:ns_plain_in.'/'
Bram Moolenaar071d4272004-06-13 20:20:40 +0000131
itchynycc7597c2024-04-01 14:54:36 +0200132execute 'syn match yamlFlowMappingKey /'.s:ns_plain_in.'\%(\s\+'.s:ns_plain_in.'\)*\ze\s*:/ contained '.
133 \'nextgroup=yamlFlowMappingDelimiter skipwhite'
134syn match yamlFlowMappingKeyStart /?/ contained nextgroup=@yamlFlowNode skipwhite
135syn match yamlFlowMappingMerge /<<\ze\s*:/ contained nextgroup=yamlFlowMappingDelimiter skipwhite
136syn match yamlFlowMappingDelimiter /:/ contained nextgroup=@yamlFlowNode skipwhite
137execute 'syn match yamlFlowNodeProperties' string(s:c_ns_properties)
138 \ 'contained contains=yamlNodeTag,yamlAnchor nextgroup=@yamlFlowNode skipwhite'
Bram Moolenaar071d4272004-06-13 20:20:40 +0000139
itchynycc7597c2024-04-01 14:54:36 +0200140execute 'syn match yamlBlockMappingKey /^\s*\zs'.s:ns_plain_out.'\%(\s\+'.s:ns_plain_out.'\)*\ze\s*:\%(\s\|$\)/ '.
141 \'nextgroup=yamlBlockMappingDelimiter skipwhite'
142execute 'syn match yamlBlockMappingKey /'.s:ns_plain_out.'\%(\s\+'.s:ns_plain_out.'\)*\ze\s*:\%(\s\|$\)/ contained '.
143 \'nextgroup=yamlBlockMappingDelimiter skipwhite'
144syn match yamlBlockMappingKeyString /^\s*\zs\%("\%([^"]\|\\"\)*"\|'\%([^']\|''\)*'\)\ze\s*:\%(\s\|$\)/
145 \ contains=yamlFlowString nextgroup=yamlBlockMappingDelimiter skipwhite
146syn match yamlBlockMappingKeyString /\%("\%([^"]\|\\"\)*"\|'\%([^']\|''\)*'\)\ze\s*:\%(\s\|$\)/ contained
147 \ contains=yamlFlowString nextgroup=yamlBlockMappingDelimiter skipwhite
148syn match yamlBlockMappingMerge /^\s*\zs<<\ze\s*:\%(\s\|$\)/ nextgroup=yamlBlockMappingDelimiter skipwhite
149syn match yamlBlockMappingMerge /<<\ze\s*:\%(\s\|$\)/ contained nextgroup=yamlBlockMappingDelimiter skipwhite
Bram Moolenaar071d4272004-06-13 20:20:40 +0000150
itchynycc7597c2024-04-01 14:54:36 +0200151syn match yamlBlockMappingDelimiter /^\s*\zs:\ze\%(\s\|$\)/ nextgroup=@yamlBlockNode skipwhite
152syn match yamlBlockMappingDelimiter /:\ze\%(\s\|$\)/ contained nextgroup=@yamlBlockNode skipwhite
153syn match yamlBlockMappingKeyStart /^\s*\zs?\ze\%(\s\|$\)/ nextgroup=@yamlBlockNode skipwhite
154syn match yamlBlockMappingKeyStart /?\ze\%(\s\|$\)/ contained nextgroup=@yamlBlockNode skipwhite
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +0200155
itchynycc7597c2024-04-01 14:54:36 +0200156syn match yamlBlockCollectionItemStart /^\s*\zs-\ze\%(\s\|$\)/ nextgroup=@yamlBlockNode skipwhite
157syn match yamlBlockCollectionItemStart /-\ze\%(\s\|$\)/ contained nextgroup=@yamlBlockNode skipwhite
158
159execute 'syn match yamlBlockNodeProperties' string(s:c_ns_properties)
160 \ 'contained contains=yamlNodeTag,yamlAnchor nextgroup=@yamlFlowNode,yamlBlockScalarHeader skipwhite'
161syn match yamlBlockScalarHeader '[|>]\%([1-9][+-]\|[+-]\?[1-9]\?\)\%(\s\+#.*\)\?$' contained
162 \ contains=yamlComment nextgroup=yamlBlockString skipnl
163syn region yamlBlockString start=/^\z(\s\+\)/ skip=/^$/ end=/^\%(\z1\)\@!/ contained
164
165syn cluster yamlBlockNode contains=@yamlFlowNode,yamlBlockMappingKey,yamlBlockMappingKeyString,
166 \yamlBlockMappingMerge,yamlBlockMappingKeyStart,yamlBlockCollectionItemStart,
167 \yamlBlockNodeProperties,yamlBlockScalarHeader
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +0200168
Bram Moolenaar5a5f4592015-04-13 12:43:06 +0200169syn cluster yamlScalarWithSpecials contains=yamlPlainScalar,yamlBlockMappingKey,yamlFlowMappingKey
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +0200170
Bram Moolenaar5a5f4592015-04-13 12:43:06 +0200171let s:_bounder = s:SimplifyToAssumeAllPrintable('\%([[\]{}, \t]\@!\p\)')
172if b:yaml_schema is# 'json'
173 syn keyword yamlNull null contained containedin=@yamlScalarWithSpecials
174 syn keyword yamlBool true false
175 exe 'syn match yamlInteger /'.s:_bounder.'\@1<!\%(0\|-\=[1-9][0-9]*\)'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
176 exe 'syn match yamlFloat /'.s:_bounder.'\@1<!\%(-\=[1-9][0-9]*\%(\.[0-9]*\)\=\(e[-+]\=[0-9]\+\)\=\|0\|-\=\.inf\|\.nan\)'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
177elseif b:yaml_schema is# 'core'
178 syn keyword yamlNull null Null NULL contained containedin=@yamlScalarWithSpecials
179 syn keyword yamlBool true True TRUE false False FALSE contained containedin=@yamlScalarWithSpecials
180 exe 'syn match yamlNull /'.s:_bounder.'\@1<!\~'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
itchynycc7597c2024-04-01 14:54:36 +0200181 exe 'syn match yamlInteger /'.s:_bounder.'\@1<!\%([-+]\=\%(\%(0\%(b[0-1_]\+\|o\?[0-7_]\+\|x[0-9a-fA-F_]\+\)\=\|\%([1-9][0-9_]*\%(:[0-5]\=\d\)\+\)\)\|[1-9][0-9_]*\)\)'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
182 exe 'syn match yamlFloat /'.s:_bounder.'\@1<!\%([-+]\=\%(\%(\d[0-9_]*\)\.[0-9_]*\%([eE][-+]\=\d\+\)\=\|\.[0-9_]\+\%([eE][-+]\=[0-9]\+\)\=\|\d[0-9_]*\%(:[0-5]\=\d\)\+\.[0-9_]*\|\.\%(inf\|Inf\|INF\)\)\|\%(\.\%(nan\|NaN\|NAN\)\)\)'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
Bram Moolenaar5a5f4592015-04-13 12:43:06 +0200183elseif b:yaml_schema is# 'pyyaml'
184 syn keyword yamlNull null Null NULL contained containedin=@yamlScalarWithSpecials
185 syn keyword yamlBool true True TRUE false False FALSE yes Yes YES no No NO on On ON off Off OFF contained containedin=@yamlScalarWithSpecials
186 exe 'syn match yamlNull /'.s:_bounder.'\@1<!\~'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
187 exe 'syn match yamlFloat /'.s:_bounder.'\@1<!\%(\v[-+]?%(\d[0-9_]*)\.[0-9_]*%([eE][-+]\d+)?|\.[0-9_]+%([eE][-+]\d+)?|[-+]?\d[0-9_]*%(\:[0-5]?\d)+\.[0-9_]*|[-+]?\.%(inf|Inf|INF)|\.%(nan|NaN|NAN)\m\)'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
188 exe 'syn match yamlInteger /'.s:_bounder.'\@1<!\%(\v[-+]?0b[0-1_]+|[-+]?0[0-7_]+|[-+]?%(0|[1-9][0-9_]*)|[-+]?0x[0-9a-fA-F_]+|[-+]?[1-9][0-9_]*%(:[0-5]?\d)+\m\)'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
189 exe 'syn match yamlTimestamp /'.s:_bounder.'\@1<!\%(\v\d\d\d\d\-\d\d\-\d\d|\d\d\d\d \-\d\d? \-\d\d?%([Tt]|[ \t]+)\d\d?\:\d\d \:\d\d %(\.\d*)?%([ \t]*%(Z|[-+]\d\d?%(\:\d\d)?))?\m\)'.s:_bounder.'\@!/ contained containedin=@yamlScalarWithSpecials'
190elseif b:yaml_schema is# 'failsafe'
191 " Nothing
192endif
193unlet s:_bounder
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +0200194
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +0200195
196execute 'syn match yamlNodeTag '.string(s:c_ns_tag_property)
197execute 'syn match yamlAnchor '.string(s:c_ns_anchor_property)
198execute 'syn match yamlAlias '.string(s:c_ns_alias_node)
199
200syn match yamlDocumentStart '^---\ze\%(\s\|$\)'
201syn match yamlDocumentEnd '^\.\.\.\ze\%(\s\|$\)'
202
203hi def link yamlTodo Todo
204hi def link yamlComment Comment
205
206hi def link yamlDocumentStart PreProc
207hi def link yamlDocumentEnd PreProc
208
209hi def link yamlDirectiveName Keyword
210
211hi def link yamlTAGDirective yamlDirectiveName
212hi def link yamlTagHandle String
213hi def link yamlTagPrefix String
214
215hi def link yamlYAMLDirective yamlDirectiveName
216hi def link yamlReservedDirective Error
217hi def link yamlYAMLVersion Number
218
219hi def link yamlString String
220hi def link yamlFlowString yamlString
221hi def link yamlFlowStringDelimiter yamlString
222hi def link yamlEscape SpecialChar
223hi def link yamlSingleEscape SpecialChar
224
itchynycc7597c2024-04-01 14:54:36 +0200225hi def link yamlMappingKey Identifier
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +0200226hi def link yamlMappingKeyStart Special
itchynycc7597c2024-04-01 14:54:36 +0200227hi def link yamlMappingMerge Special
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +0200228hi def link yamlKeyValueDelimiter Special
229
itchynycc7597c2024-04-01 14:54:36 +0200230hi def link yamlFlowIndicator Special
231hi def link yamlFlowMappingKey yamlMappingKey
232hi def link yamlFlowMappingKeyStart yamlMappingKeyStart
233hi def link yamlFlowMappingMerge yamlMappingMerge
234hi def link yamlFlowMappingDelimiter yamlKeyValueDelimiter
235
236hi def link yamlBlockMappingKey yamlMappingKey
237hi def link yamlBlockMappingKeyStart yamlMappingKeyStart
238hi def link yamlBlockMappingMerge yamlMappingMerge
239hi def link yamlBlockMappingDelimiter yamlKeyValueDelimiter
240hi def link yamlBlockCollectionItemStart Label
241hi def link yamlBlockScalarHeader Special
242" We do not link yamlBlockString to yamlString, because yamlPlainScalar is
243" not highlighted as string neighter, and also due to historical reasons.
244" hi def link yamlBlockString yamlString
245
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +0200246hi def link yamlConstant Constant
247
Bram Moolenaar5a5f4592015-04-13 12:43:06 +0200248hi def link yamlNull yamlConstant
249hi def link yamlBool yamlConstant
250
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +0200251hi def link yamlAnchor Type
252hi def link yamlAlias Type
253hi def link yamlNodeTag Type
254
255hi def link yamlInteger Number
256hi def link yamlFloat Float
257hi def link yamlTimestamp Number
Bram Moolenaar071d4272004-06-13 20:20:40 +0000258
259let b:current_syntax = "yaml"
260
itchynycc7597c2024-04-01 14:54:36 +0200261unlet s:ns_char s:ns_word_char s:ns_uri_char s:ns_tag_char s:c_indicator s:c_flow_indicator
262 \ s:ns_anchor_char s:ns_char_without_c_indicator s:_collection s:_neg_collection
263 \ s:c_verbatim_tag s:c_named_tag_handle s:c_secondary_tag_handle s:c_primary_tag_handle
264 \ s:c_tag_handle s:c_ns_shorthand_tag s:c_non_specific_tag s:c_ns_tag_property
265 \ s:c_ns_anchor_name s:c_ns_anchor_property s:c_ns_alias_node s:c_ns_properties
266 \ s:ns_directive_name s:ns_local_tag_prefix s:ns_global_tag_prefix s:ns_tag_prefix
267 \ s:ns_plain_safe_out s:ns_plain_safe_in s:ns_plain_safe_in_without_colhash s:ns_plain_safe_out_without_colhash
268 \ s:ns_plain_first_in s:ns_plain_first_out s:ns_plain_char_in s:ns_plain_char_out s:ns_plain_out s:ns_plain_in
Bram Moolenaar5a5f4592015-04-13 12:43:06 +0200269delfunction s:SimplifyAdjacentCollections
270delfunction s:SimplifyToAssumeAllPrintable
Bram Moolenaar24ea3ba2010-09-19 19:01:21 +0200271
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000272let &cpo = s:cpo_save
273unlet s:cpo_save
itchynycc7597c2024-04-01 14:54:36 +0200274
275" vim: set et sw=4 sts=4 ts=8: