389
|
1 " Vim syntax file
|
|
2 " Language: RFC 2614 - An API for Service Location registration file
|
839
|
3 " Maintainer: Nikolai Weibull <now@bitwi.se>
|
|
4 " Latest Revision: 2006-04-19
|
389
|
5
|
|
6 if exists("b:current_syntax")
|
|
7 finish
|
|
8 endif
|
|
9
|
|
10 let s:cpo_save = &cpo
|
|
11 set cpo&vim
|
|
12
|
|
13 syn keyword slpregTodo contained TODO FIXME XXX NOTE
|
|
14
|
|
15 syn region slpregComment display oneline start='^[#;]' end='$'
|
|
16 \ contains=slpregTodo,@Spell
|
|
17
|
|
18 syn match slpregBegin display '^'
|
|
19 \ nextgroup=slpregServiceURL,
|
|
20 \ slpregComment
|
|
21
|
|
22 syn match slpregServiceURL contained display 'service:'
|
|
23 \ nextgroup=slpregServiceType
|
|
24
|
|
25 syn match slpregServiceType contained display '\a[[:alpha:][:digit:]+-]*\%(\.\a[[:alpha:][:digit:]+-]*\)\=\%(:\a[[:alpha:][:digit:]+-]*\)\='
|
|
26 \ nextgroup=slpregServiceSAPCol
|
|
27
|
|
28 syn match slpregServiceSAPCol contained display ':'
|
|
29 \ nextgroup=slpregSAP
|
|
30
|
|
31 syn match slpregSAP contained '[^,]\+'
|
|
32 \ nextgroup=slpregLangSep
|
|
33 "syn match slpregSAP contained display '\%(//\%(\%([[:alpha:][:digit:]$-_.~!*\'(),+;&=]*@\)\=\%([[:alnum:]][[:alnum:]-]*[[:alnum:]]\|[[:alnum:]]\.\)*\%(\a[[:alnum:]-]*[[:alnum:]]\|\a\)\%(:\d\+\)\=\)\=\|/at/\%([[:alpha:][:digit:]$-_.~]\|\\\x\x\)\{1,31}:\%([[:alpha:][:digit:]$-_.~]\|\\\x\x\)\{1,31}\%([[:alpha:][:digit:]$-_.~]\|\\\x\x\)\{1,31}\|/ipx/\x\{8}:\x\{12}:\x\{4}\)\%(/\%([[:alpha:][:digit:]$-_.~!*\'()+;?:@&=+]\|\\\x\x\)*\)*\%(;[^()\\!<=>~[:cntrl:]* \t_]\+\%(=[^()\\!<=>~[:cntrl:] ]\+\)\=\)*'
|
|
34
|
|
35 syn match slpregLangSep contained display ','
|
|
36 \ nextgroup=slpregLang
|
|
37
|
|
38 syn match slpregLang contained display '\a\{1,8}\%(-\a\{1,8\}\)\='
|
|
39 \ nextgroup=slpregLTimeSep
|
|
40
|
|
41 syn match slpregLTimeSep contained display ','
|
|
42 \ nextgroup=slpregLTime
|
|
43
|
|
44 syn match slpregLTime contained display '\d\{1,5}'
|
|
45 \ nextgroup=slpregType,slpregUNewline
|
|
46
|
|
47 syn match slpregType contained display '\a[[:alpha:][:digit:]+-]*'
|
|
48 \ nextgroup=slpregUNewLine
|
|
49
|
|
50 syn match slpregUNewLine contained '\s*\n'
|
|
51 \ nextgroup=slpregScopes,slpregAttrList skipnl
|
|
52
|
|
53 syn keyword slpregScopes contained scopes
|
|
54 \ nextgroup=slpregScopesEq
|
|
55
|
|
56 syn match slpregScopesEq contained '=' nextgroup=slpregScopeName
|
|
57
|
|
58 syn match slpregScopeName contained '[^(),\\!<=>[:cntrl:];*+ ]\+'
|
|
59 \ nextgroup=slpregScopeNameSep,
|
|
60 \ slpregScopeNewline
|
|
61
|
|
62 syn match slpregScopeNameSep contained ','
|
|
63 \ nextgroup=slpregScopeName
|
|
64
|
|
65 syn match slpregScopeNewline contained '\s*\n'
|
|
66 \ nextgroup=slpregAttribute skipnl
|
|
67
|
|
68 syn match slpregAttribute contained '[^(),\\!<=>[:cntrl:]* \t_]\+'
|
|
69 \ nextgroup=slpregAttributeEq,
|
|
70 \ slpregScopeNewline
|
|
71
|
|
72 syn match slpregAttributeEq contained '='
|
|
73 \ nextgroup=@slpregAttrValue
|
|
74
|
|
75 syn cluster slpregAttrValueCon contains=slpregAttribute,slpregAttrValueSep
|
|
76
|
|
77 syn cluster slpregAttrValue contains=slpregAttrIValue,slpregAttrSValue,
|
|
78 \ slpregAttrBValue,slpregAttrSSValue
|
|
79
|
|
80 syn match slpregAttrSValue contained display '[^(),\\!<=>~[:cntrl:]]\+'
|
|
81 \ nextgroup=@slpregAttrValueCon skipwhite skipnl
|
|
82
|
|
83 syn match slpregAttrSSValue contained display '\\FF\%(\\\x\x\)\+'
|
|
84 \ nextgroup=@slpregAttrValueCon skipwhite skipnl
|
|
85
|
|
86 syn match slpregAttrIValue contained display '[-]\=\d\+\>'
|
|
87 \ nextgroup=@slpregAttrValueCon skipwhite skipnl
|
|
88
|
|
89 syn keyword slpregAttrBValue contained true false
|
|
90 \ nextgroup=@slpregAttrValueCon skipwhite skipnl
|
|
91
|
|
92 syn match slpregAttrValueSep contained display ','
|
|
93 \ nextgroup=@slpregAttrValue skipwhite skipnl
|
|
94
|
|
95 hi def link slpregTodo Todo
|
|
96 hi def link slpregComment Comment
|
|
97 hi def link slpregServiceURL Type
|
|
98 hi def link slpregServiceType slpregServiceURL
|
|
99 hi def link slpregServiceSAPCol slpregServiceURL
|
|
100 hi def link slpregSAP slpregServiceURL
|
|
101 hi def link slpregDelimiter Delimiter
|
|
102 hi def link slpregLangSep slpregDelimiter
|
|
103 hi def link slpregLang String
|
|
104 hi def link slpregLTimeSep slpregDelimiter
|
|
105 hi def link slpregLTime Number
|
|
106 hi def link slpregType Type
|
|
107 hi def link slpregScopes Identifier
|
|
108 hi def link slpregScopesEq Operator
|
|
109 hi def link slpregScopeName String
|
|
110 hi def link slpregScopeNameSep slpregDelimiter
|
|
111 hi def link slpregAttribute Identifier
|
|
112 hi def link slpregAttributeEq Operator
|
|
113 hi def link slpregAttrSValue String
|
|
114 hi def link slpregAttrSSValue slpregAttrSValue
|
|
115 hi def link slpregAttrIValue Number
|
|
116 hi def link slpregAttrBValue Boolean
|
|
117 hi def link slpregAttrValueSep slpregDelimiter
|
|
118
|
|
119 let b:current_syntax = "slpreg"
|
|
120
|
|
121 let &cpo = s:cpo_save
|
|
122 unlet s:cpo_save
|