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)
|
2006-04-21 22:12:41 +00:00
|
|
|
" Maintainer: Nikolai Weibull <now@bitwi.se>
|
2008-06-24 20:19:36 +00:00
|
|
|
" Latest Revision: 2007-06-27
|
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
|
|
|
|
|
2008-06-24 20:19:36 +00:00
|
|
|
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}'
|
2004-06-13 20:20:40 +00:00
|
|
|
|
|
|
|
" TODO: how do we get 0x85, 0x2028, and 0x2029 into this?
|
2008-06-24 20:19:36 +00:00
|
|
|
" 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
|
|
|
|
\ +''+
|
2004-06-13 20:20:40 +00:00
|
|
|
|
|
|
|
" TODO: sexagecimal and fixed (20:30.15 and 1,230.15)
|
2008-06-24 20:19:36 +00:00
|
|
|
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'
|
2005-06-29 22:40:58 +00:00
|
|
|
|
|
|
|
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
|
2008-06-24 20:19:36 +00:00
|
|
|
hi def link yamlIndentationError Error
|
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
|