comparison runtime/syntax/slpreg.vim @ 0:76efa0be13f1

Initial revision
author atsuki
date Sat, 10 Nov 2007 15:07:22 +0900
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:76efa0be13f1
1 " Vim syntax file
2 " Language: RFC 2614 - An API for Service Location registration file
3 " Maintainer: Nikolai Weibull <now@bitwi.se>
4 " Latest Revision: 2006-04-19
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