" Vim syntax file " Language: YAML " Maintainer: motemen " Version: 20070822 syntax clear if !exists('g:yaml_syntax_highlight_numbers') let g:yaml_syntax_highlight_numbers = 0 endif syn match yamlValue contained +\s*\%(#.*\)\?+ contains=yamlComment nextgroup=yamlType,yamlLabel,yamlFlowMap,yamlFlowSeq,yamlBool,yamlNull,yamlTextBlock,yamlString,yamlTimestamp,yamlInt,yamlFloat,yamlPlainString " Plain string syn match yamlPlainString contained +.\++ syn match yamlPlainStringInFlow contained +[^}\],]\++ " Number if g:yaml_syntax_highlight_numbers syn match yamlInt contained /[-+]\?\%(0\|[1-9][0-9_]*\)\+\%(\.\|[0-9]\)\@!/ syn match yamlInt contained /[-+]\?0b[0-1_]\+/ syn match yamlInt contained /[-+]\?0[0-7_]\+/ syn match yamlInt contained /[-+]\?0x[0-9a-fA-F_]\+/ syn match yamlInt contained /[-+]\?[1-9][0-9_]*\%(:[0-5]\?[0-9]\)\+/ syn match yamlFloat contained /[-+]\?\%([0-9][0-9_]*\)\?\.[0-9_]\+\%([eE][-+][0-9]\+\)\?\%(\.\|[0-9]\)\@!/ syn match yamlFloat contained /[-+]\?[0-9][0-9_]*\%(:[0-5]\?[0-9]\)\+\.[0-9_]*/ endif syn match yamlFloat contained /[-+]\?\.\%(inf\|Inf\|INF\)\s*\%(#.*\)\?$/ syn match yamlFloat contained /\.\%(nan\|NaN\|NAN\)\s*\%(#.*\)\?$/ " Timestamp syn match yamlTimestamp contained /[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]/ syn match yamlTimestamp contained /[0-9][0-9][0-9][0-9]-[0-9][0-9]\?-[0-9][0-9]\?\%([Tt]\|[ \t]\+\)[0-9][0-9]\?:[0-9][0-9]:[0-9][0-9]\%(\.[0-9]*\)\?\%([ \t]*Z\|[-+][0-9][0-9]\?\%(:[0-9][0-9]\)\?\)\?/ " Flow sequence syn region yamlFlowSeq matchgroup=Delimiter start=+\[+ end=+\]+ contains=yamlKeyInFlow,yamlQuotedKeyInFlow,yamlComma " Flow mapping syn region yamlFlowMap matchgroup=Delimiter start=+{+ end=+}+ contains=yamlKeyInFlow,yamlQuotedKeyInFlow,yamlComma " Flow mapping/sequence syn match yamlComma +,+ syn match yamlKeyColonInFlow contained +:+ nextgroup=yamlValueInFlow syn match yamlValueInFlow contained +\s*+ nextgroup=yamlTypeInFlow,yamlFlowMap,yamlFlowSeq,yamlConstant,yamlTextBlock,yamlString,yamlPlainStringInFlow syn match yamlKeyInFlow contained +[^,#'" ][^}\]]\{-}\ze:+ nextgroup=yamlKeyColonInFlow syn region yamlQuotedKeyInFlow contained matchgroup=String start=+"+rs=e skip=+\\"+ end=+"\s*\ze:+ contains=yamlEscape nextgroup=yamlKeyColonInFlow syn region yamlQuotedKeyInFlow contained matchgroup=String start=+'+rs=e skip=+''+ end=+'\s*\ze:+ contains=yamlSingleEscape nextgroup=yamlKeyColonInFlow " Block mapping syn match yamlKeyColon +:+ nextgroup=yamlValue syn match yamlKey +[^#'"{\[ ]\%(.\)\{-}\ze:\%( \|$\)+ nextgroup=yamlKeyColon syn region yamlQuotedKey matchgroup=String start=+"+rs=e skip=+\\"+ end=+"\s*\ze:+ contains=yamlEscape nextgroup=yamlKeyColon syn region yamlQuotedKey matchgroup=String start=+'+rs=e skip=+''+ end=+'\s*\ze:+ contains=yamlSingleEscape nextgroup=yamlKeyColon syn region yamlKey matchgroup=Delimiter start=+?+ end=+:+rs=e-1 contains=yamlValue nextgroup=yamlKeyColon " Block sequence syn match yamlSeqMark +-\s*+ nextgroup=yamlValue,yamlKey " Label syn match yamlLabel contained +[*&]\S\++ " Comment syn keyword yamlTodo contained TODO FIXME XXX NOTE syn match yamlComment +#.*+ contains=yamlTodo syn region yamlComment start=+^\.\.\.+ end=+\%$+ contains=yamlTodo " String syn region yamlString contained start=+"+ skip=+\\"+ end=+"+ contains=yamlEscape syn region yamlString contained start=+'+ skip=+''+ end=+'+ contains=yamlSingleEscape syn match yamlEscape contained +\\[\\"abefnrtv^0_ NLP]+ syn match yamlEscape contained '\\x\x\{2}' syn match yamlEscape contained '\\u\x\{4}' syn match yamlEscape contained '\\U\x\{8}' syn match yamlEscape contained '\\\%(\r\n\|[\r\n]\)' syn match yamlSingleEscape contained +''+ " Type syn match yamlType +!\S*+ nextgroup=yamlValue " Block style syn region yamlTextBlock start=/[|>][+-]\?\%([1-9]\d*\)\?\n\z\( \+\)/ end=/^\%(\z1\|$\)\@!/ " Constant syn match yamlBool +\%(y\|Y\|yes\|Yes\|YES\|n\|N\|no\|No\|NO\|true\|True\|TRUE\|false\|False\|FALSE\|on\|On\|ON\|off\|Off\|OFF\)\ze\s*\%(#.*\)\?$+ contained syn match yamlNull +\%(null\|\~\)\ze\s*\%(#.*\)\?$+ contained " Directive syn match yamlDirective +^%[^#]*\%(#.*\)\?$+ contains=yamlComment syn match yamlDocHeader +^---\s*+ highlight link yamlTodo TODO highlight link yamlComment Comment highlight link yamlKeyColon Delimiter highlight link yamlKeyColonInFlow Delimiter highlight link yamlSeqMark Delimiter highlight link yamlKey Identifier highlight link yamlQuotedKey Identifier highlight link yamlKeyInFlow Identifier highlight link yamlQuotedKeyInFlow Identifier highlight link yamlBool Constant highlight link yamlNull Constant highlight link yamlTextBlock String highlight link yamlType Type highlight link yamlDocHeader Statement highlight link yamlDirective PreProc highlight link yamlLabel Label highlight link yamlInt Number highlight link yamlFloat Number