Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/vim71/syntax/yaml.vim
diff options
context:
space:
mode:
Diffstat (limited to 'vim71/syntax/yaml.vim')
-rw-r--r--vim71/syntax/yaml.vim83
1 files changed, 83 insertions, 0 deletions
diff --git a/vim71/syntax/yaml.vim b/vim71/syntax/yaml.vim
new file mode 100644
index 0000000..9ebab70
--- /dev/null
+++ b/vim71/syntax/yaml.vim
@@ -0,0 +1,83 @@
+" 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