mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			84 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| " Language:         YAML (YAML Ain't Markup Language)
 | |
| " Maintainer:       Nikolai Weibull <now@bitwi.se>
 | |
| " Latest Revision:  2006-04-19
 | |
| 
 | |
| 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    '!\%(![^\\^%     ]\+\|[^!][^:/   ]*\)'
 | |
| 
 | |
| syn match   yamlAnchor          '&.\+'
 | |
| 
 | |
| syn match   yamlAlias           '\*.\+'
 | |
| 
 | |
| syn match   yamlDelimiter       '[-,:]'
 | |
| syn match   yamlBlock           '[\[\]{}>|]'
 | |
| syn match   yamlOperator        '[?+-]'
 | |
| syn match   yamlKey             '\w\+\(\s\+\w\+\)*\ze\s*:'
 | |
| 
 | |
| 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}'
 | |
| " TODO: how do we get 0x85, 0x2028, and 0x2029 into this?
 | |
| syn match   yamlEscape          display '\\\%(\r\n\|[\r\n]\)'
 | |
| 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 '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
 | |
| 
 | |
| let b:current_syntax = "yaml"
 | |
| 
 | |
| let &cpo = s:cpo_save
 | |
| unlet s:cpo_save
 |