updated for version 7.2a

This commit is contained in:
Bram Moolenaar
2008-06-24 20:19:36 +00:00
parent 176dd1e03c
commit f233048a12
32 changed files with 3829 additions and 442 deletions

View File

@ -1,7 +1,7 @@
" Vim syntax file
" Language: YAML (YAML Ain't Markup Language)
" Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2006-04-19
" Latest Revision: 2007-06-27
if exists("b:current_syntax")
finish
@ -10,53 +10,140 @@ endif
let s:cpo_save = &cpo
set cpo&vim
syn keyword yamlTodo contained TODO FIXME XXX NOTE
syn keyword yamlTodo
\ contained
\ TODO
\ FIXME
\ XXX
\ NOTE
syn region yamlComment display oneline start='\%(^\|\s\)#' end='$'
\ contains=yamlTodo,@Spell
syn region yamlComment
\ display
\ oneline
\ start='%(^|s)#'
\ end='$'
\ contains=yamlTodo,@Spell
syn match yamlNodeProperty '!\%(![^\\^% ]\+\|[^!][^:/ ]*\)'
syn match yamlNodeProperty
\ '!\%(![^\\^% \t]\+\|[^!][^:/ \t]*\)'
syn match yamlAnchor '&.\+'
syn match yamlAnchor
\ '&.+'
syn match yamlAlias '\*.\+'
syn match yamlAlias
\ '*.+'
syn match yamlDelimiter '[-,:]'
syn match yamlBlock '[\[\]{}>|]'
syn match yamlOperator '[?+-]'
syn match yamlKey '\w\+\(\s\+\w\+\)*\ze\s*:'
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}'
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 +''+
" 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
\ +''+
" 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 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 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 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 region yamlDocumentHeader
\ start='---'
\ end='$'
\ contains=yamlDirective
syn match yamlDocumentEnd
\ '\.\.\.'
syn match yamlDirective contained '%[^:]\+:.\+'
syn match yamlDirective
\ contained
\ '%[^:]+:.+'
syn match yamlIndentation
\ '^s*'
\ contains=yamlIndentationError
syn match yamlIndentationError
\ 't'
hi def link yamlTodo Todo
hi def link yamlComment Comment
@ -76,6 +163,7 @@ hi def link yamlSingleEscape SpecialChar
hi def link yamlNumber Number
hi def link yamlConstant Constant
hi def link yamlTimestamp Number
hi def link yamlIndentationError Error
let b:current_syntax = "yaml"