| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " Vim syntax file | 
					
						
							| 
									
										
										
										
											2005-06-29 22:40:58 +00:00
										 |  |  | " Language:         YAML (YAML Ain't Markup Language) | 
					
						
							|  |  |  | " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se> | 
					
						
							| 
									
										
										
										
											2005-07-04 22:49:24 +00:00
										 |  |  | " Latest Revision:  2005-07-04 | 
					
						
							| 
									
										
										
										
											2005-06-29 22:40:58 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | if exists("b:current_syntax") | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  |   finish | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-29 22:40:58 +00:00
										 |  |  | let s:cpo_save = &cpo | 
					
						
							|  |  |  | set cpo&vim | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn keyword yamlTodo            contained TODO FIXME XXX NOTE | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-07-04 22:49:24 +00:00
										 |  |  | syn region  yamlComment         display oneline start='\%(^\|\s\)#' end='$' | 
					
						
							|  |  |  |                                 \ contains=yamlTodo,@Spell | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-29 22:40:58 +00:00
										 |  |  | syn match   yamlNodeProperty    '!\%(![^\\^%     ]\+\|[^!][^:/   ]*\)' | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-29 22:40:58 +00:00
										 |  |  | syn match   yamlAnchor          '&.\+' | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-29 22:40:58 +00:00
										 |  |  | syn match   yamlAlias           '\*.\+' | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-29 22:40:58 +00:00
										 |  |  | syn match   yamlDelimiter       '[-,:]' | 
					
						
							|  |  |  | syn match   yamlBlock           '[\[\]{}>|]' | 
					
						
							|  |  |  | syn match   yamlOperator        '[?+-]' | 
					
						
							|  |  |  | syn match   yamlKey             '\w\+\(\s\+\w\+\)*\ze\s*:' | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-29 22:40:58 +00:00
										 |  |  | 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 '\\x\x\{2}' | 
					
						
							|  |  |  | syn match   yamlEscape          contained display '\\u\x\{4}' | 
					
						
							|  |  |  | syn match   yamlEscape          contained display '\\U\x\{8}' | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " TODO: how do we get 0x85, 0x2028, and 0x2029 into this? | 
					
						
							| 
									
										
										
										
											2005-06-29 22:40:58 +00:00
										 |  |  | syn match   yamlEscape          display '\\\%(\r\n\|[\r\n]\)' | 
					
						
							|  |  |  | syn match   yamlSingleEscape    contained display +''+ | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " TODO: sexagecimal and fixed (20:30.15 and 1,230.15) | 
					
						
							| 
									
										
										
										
											2005-06-29 22:40:58 +00:00
										 |  |  | syn match   yamlNumber          display | 
					
						
							|  |  |  |                                 \ '\<[+-]\=\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=' | 
					
						
							|  |  |  | syn match   yamlNumber          display '0\o\+' | 
					
						
							|  |  |  | syn match   yamlNumber          display '0x\x\+' | 
					
						
							|  |  |  | 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 '%[^:]\+:.\+' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | let b:current_syntax = "yaml" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-29 22:40:58 +00:00
										 |  |  | let &cpo = s:cpo_save | 
					
						
							|  |  |  | unlet s:cpo_save |