comparison runtime/syntax/yaml.vim @ 7:3fc0f57ecb91 v7.0001

updated for version 7.0001
author vimboss
date Sun, 13 Jun 2004 20:20:40 +0000
parents
children f14cbd913415
comparison
equal deleted inserted replaced
6:c2daee826b8f 7:3fc0f57ecb91
1 " Vim syntax file
2 " Language: YAML (YAML Ain't Markup Language)
3 " Maintainer: Nikolai Weibull <source@pcppopper.org>
4 " URL: http://www.pcppopper.org/vim/syntax/pcp/yaml/
5 " Latest Revision: 2004-05-22
6 " arch-tag: 01bf8ef1-335f-4692-a228-4846cb64cd16
7
8 if version < 600
9 syntax clear
10 elseif exists("b:current_syntax")
11 finish
12 endif
13
14 " Todo
15 syn keyword yamlTodo contained TODO FIXME XXX NOTE
16
17 " Comments (4.2.2)
18 syn region yamlComment matchgroup=yamlComment start='\%(^\|\s\)#' end='$' contains=yamlTodo
19
20 " Node Properties (4.3.4)
21 syn match yamlNodeProperty '!\%(![^\\^% ]\+\|[^!][^:/ ]*\)'
22
23 " Anchors (4.3.6)
24 syn match yamlAnchor '&.\+'
25
26 " Aliases (4.3.7)
27 syn match yamlAlias '\*.\+'
28
29 " Operators, Blocks, Keys, and Delimiters
30 syn match yamlDelimiter '[-,:]'
31 syn match yamlBlock '[\[\]{}>|]'
32 syn match yamlOperator '[?+-]'
33 syn match yamlKey '\w\+\(\s\+\w\+\)*\ze\s*:'
34
35 " Strings (4.6.8, 4.6.9)
36 syn region yamlString start=+"+ skip=+\\"+ end=+"+ contains=yamlEscape
37 syn region yamlString start=+'+ skip=+''+ end=+'+ contains=yamlSingleEscape
38 syn match yamlEscape contained +\\[\\"abefnrtv^0_ NLP]+
39 syn match yamlEscape contained '\\x\x\{2}'
40 syn match yamlEscape contained '\\u\x\{4}'
41 syn match yamlEscape contained '\\U\x\{8}'
42 " TODO: how do we get 0x85, 0x2028, and 0x2029 into this?
43 syn match yamlEscape '\\\%(\r\n\|[\r\n]\)'
44 syn match yamlSingleEscape contained +''+
45
46 " Numbers
47 " TODO: sexagecimal and fixed (20:30.15 and 1,230.15)
48 syn match yamlNumber '\<[+-]\=\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\='
49 syn match yamlNumber '0\o\+'
50 syn match yamlNumber '0x\x\+'
51 syn match yamlNumber '([+-]\=[iI]nf)'
52 syn match yamlNumber '(NaN)'
53
54 " Constants
55 syn match yamlConstant '\<[~yn]\>'
56 syn keyword yamlConstant true True TRUE false False FALSE
57 syn keyword yamlConstant yes Yes on ON no No off OFF
58 syn keyword yamlConstant null Null NULL nil Nil NIL
59
60 " Timestamps
61 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\)\='
62
63 " Documents (4.3.1)
64 syn region yamlDocumentHeader start='---' end='$' contains=yamlDirective
65 syn match yamlDocumentEnd '\.\.\.'
66
67 " Directives (4.3.2)
68 syn match yamlDirective contained '%[^:]\+:.\+'
69
70 " Define the default highlighting.
71 " For version 5.7 and earlier: only when not done already
72 " For version 5.8 and later: only when an item doesn't have highlighting yet
73 if version >= 508 || !exists("did_yaml_syn_inits")
74 if version < 508
75 let did_yaml_syn_inits = 1
76 command -nargs=+ HiLink hi link <args>
77 else
78 command -nargs=+ HiLink hi def link <args>
79 endif
80
81 HiLink yamlTodo Todo
82 HiLink yamlComment Comment
83 HiLink yamlDocumentHeader PreProc
84 HiLink yamlDocumentEnd PreProc
85 HiLink yamlDirective Keyword
86 HiLink yamlNodeProperty Type
87 HiLink yamlAnchor Type
88 HiLink yamlAlias Type
89 HiLink yamlDelimiter Delimiter
90 HiLink yamlBlock Operator
91 HiLink yamlOperator Operator
92 HiLink yamlKey Identifier
93 HiLink yamlString String
94 HiLink yamlEscape SpecialChar
95 HiLink yamlSingleEscape SpecialChar
96 HiLink yamlNumber Number
97 HiLink yamlConstant Constant
98 HiLink yamlTimestamp Number
99
100 delcommand HiLink
101 endif
102
103 let b:current_syntax = "yaml"
104
105 " vim: set sts=2 sw=2: