annotate runtime/syntax/idl.vim @ 34:e170173ecb68 current-release

before ack base protocol.
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 26 Nov 2008 15:02:10 +0900
parents 76efa0be13f1
children 67300faee616
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
1 " Vim syntax file
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
2 " Language: IDL (Interface Description Language)
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
3 " Created By: Jody Goldberg
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
4 " Maintainer: Michael Geddes <vim@frog.wheelycreek.net>
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
5 " Last Change: Thu Apr 13 2006
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
6
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
7
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
8 " This is an experiment. IDL's structure is simple enough to permit a full
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
9 " grammar based approach to rather than using a few heuristics. The result
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
10 " is large and somewhat repetative but seems to work.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
11
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
12 " There are some Microsoft extensions to idl files that are here. Some of
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
13 " them are disabled by defining idl_no_ms_extensions.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
14 "
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
15 " The more complex of the extensions are disabled by defining idl_no_extensions.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
16 "
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
17 " History:
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
18 " 2.0: Michael's new version
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
19 " 2.1: Support for Vim 7 spell (Anduin Withers)
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
20 "
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
21
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
22 if exists("b:current_syntax")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
23 finish
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
24 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
25
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
26 if exists("idlsyntax_showerror")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
27 syn match idlError +\S+ skipwhite skipempty nextgroup=idlError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
28 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
29
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
30 syn region idlCppQuote start='\<cpp_quote\s*(' end=')' contains=idlString
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
31
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
32 " Misc basic
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
33 syn match idlId contained "[a-zA-Z][a-zA-Z0-9_]*" skipwhite skipempty nextgroup=idlEnumComma,idlEnumNumber
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
34 syn match idlEnumComma contained ","
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
35 syn match idlEnumNumber contained "=" skipwhite skipempty nextgroup=idlString,idlLiteral
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
36 syn match idlSemiColon contained ";"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
37 syn match idlCommaArg contained "," skipempty skipwhite nextgroup=idlSimpDecl
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
38 syn region idlArraySize1 contained start=:\[: end=:\]: skipempty skipwhite nextgroup=idlArraySize1,idlError,idlSemiColon,idlCommaArg contains=idlArraySize1,idlLiteral
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
39 syn match idlSimpDecl contained "[a-zA-Z][a-zA-Z0-9_]*" skipempty skipwhite nextgroup=idlError,idlSemiColon,idlCommaArg,idlArraySize1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
40 syn region idlString contained start=+"+ skip=+\\\(\\\\\)*"+ end=+"+ contains=@Spell
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
41 syn match idlLiteral contained "[1-9]\d*\(\.\d*\)\="
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
42 syn match idlLiteral contained "0"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
43 syn match idlLiteral contained "\.\d\+"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
44 syn match idlLiteral contained "0x[0-9A-Fa-f]\+"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
45 syn match idlLiteral contained "0[0-7]\+"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
46 syn keyword idlLiteral contained TRUE FALSE
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
47
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
48 " Comments
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
49 syn keyword idlTodo contained TODO FIXME XXX
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
50 syn region idlComment start="/\*" end="\*/" contains=idlTodo,@Spell
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
51 syn match idlComment "//.*" contains=idlTodo,@Spell
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
52 syn match idlCommentError "\*/"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
53
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
54 " C style Preprocessor
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
55 syn region idlIncluded contained start=+"+ skip=+\\\(\\\\\)*"+ end=+"+
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
56 syn match idlIncluded contained "<[^>]*>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
57 syn match idlInclude "^[ \t]*#[ \t]*include\>[ \t]*["<]" contains=idlIncluded,idlString
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
58 syn region idlPreCondit start="^[ \t]*#[ \t]*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=idlComment,idlCommentError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
59 syn region idlDefine start="^[ \t]*#[ \t]*\(define\>\|undef\>\)" skip="\\$" end="$" contains=idlLiteral,idlString
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
60
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
61 " Constants
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
62 syn keyword idlConst const skipempty skipwhite nextgroup=idlBaseType,idlBaseTypeInt
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
63
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
64 " Attribute
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
65 syn keyword idlROAttr readonly skipempty skipwhite nextgroup=idlAttr
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
66 syn keyword idlAttr attribute skipempty skipwhite nextgroup=idlBaseTypeInt,idlBaseType
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
67
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
68 " Types
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
69 syn region idlD4 contained start="<" end=">" skipempty skipwhite nextgroup=idlSimpDecl contains=idlSeqType,idlBaseTypeInt,idlBaseType,idlLiteral
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
70 syn keyword idlSeqType contained sequence skipempty skipwhite nextgroup=idlD4
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
71 syn keyword idlBaseType contained float double char boolean octet any skipempty skipwhite nextgroup=idlSimpDecl
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
72 syn keyword idlBaseTypeInt contained short long skipempty skipwhite nextgroup=idlSimpDecl
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
73 syn keyword idlBaseType contained unsigned skipempty skipwhite nextgroup=idlBaseTypeInt
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
74 syn region idlD1 contained start="<" end=">" skipempty skipwhite nextgroup=idlSimpDecl contains=idlString,idlLiteral
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
75 syn keyword idlBaseType contained string skipempty skipwhite nextgroup=idlD1,idlSimpDecl
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
76 syn match idlBaseType contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlSimpDecl
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
77
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
78 " Modules
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
79 syn region idlModuleContent contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon contains=idlUnion,idlStruct,idlEnum,idlInterface,idlComment,idlTypedef,idlConst,idlException,idlModule
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
80 syn match idlModuleName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlModuleContent,idlError,idlSemiColon
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
81 syn keyword idlModule module skipempty skipwhite nextgroup=idlModuleName
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
82
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
83 " Interfaces
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
84 syn cluster idlCommentable contains=idlComment
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
85 syn cluster idlContentCluster contains=idlUnion,idlStruct,idlEnum,idlROAttr,idlAttr,idlOp,idlOneWayOp,idlException,idlConst,idlTypedef,idlAttributes,idlErrorSquareBracket,idlErrorBracket,idlInterfaceSections
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
86
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
87 syn region idlInterfaceContent contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon contains=@idlContentCluster,@idlCommentable
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
88 syn match idlInheritFrom2 contained "," skipempty skipwhite nextgroup=idlInheritFrom
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
89 syn match idlInheritFrom contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlInheritFrom2,idlInterfaceContent
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
90 syn match idlInherit contained ":" skipempty skipwhite nextgroup=idlInheritFrom
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
91 syn match idlInterfaceName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlInterfaceContent,idlInherit,idlError,idlSemiColon
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
92 syn keyword idlInterface interface dispinterface skipempty skipwhite nextgroup=idlInterfaceName
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
93 syn keyword idlInterfaceSections contained properties methods skipempty skipwhite nextgroup=idlSectionColon,idlError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
94 syn match idlSectionColon contained ":"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
95
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
96
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
97 syn match idlLibraryName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlLibraryContent,idlError,idlSemiColon
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
98 syn keyword idlLibrary library skipempty skipwhite nextgroup=idlLibraryName
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
99 syn region idlLibraryContent contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon contains=@idlCommentable,idlAttributes,idlErrorSquareBracket,idlErrorBracket,idlImportlib,idlCoclass,idlTypedef,idlInterface
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
100
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
101 syn keyword idlImportlib contained importlib skipempty skipwhite nextgroup=idlStringArg
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
102 syn region idlStringArg contained start="(" end=")" contains=idlString nextgroup=idlError,idlSemiColon,idlErrorBrace,idlErrorSquareBracket
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
103
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
104 syn keyword idlCoclass coclass contained skipempty skipwhite nextgroup=idlCoclassName
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
105 syn match idlCoclassName "[a-zA-Z0-9_]\+" contained skipempty skipwhite nextgroup=idlCoclassDefinition,idlError,idlSemiColon
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
106
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
107 syn region idlCoclassDefinition contained start="{" end="}" contains=idlCoclassAttributes,idlInterface,idlErrorBracket,idlErrorSquareBracket skipempty skipwhite nextgroup=idlError,idlSemiColon
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
108 syn region idlCoclassAttributes contained start=+\[+ end=+]+ skipempty skipwhite nextgroup=idlInterface contains=idlErrorBracket,idlErrorBrace,idlCoclassAttribute
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
109 syn keyword idlCoclassAttribute contained default source
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
110 "syn keyword idlInterface interface skipempty skipwhite nextgroup=idlInterfaceStubName
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
111
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
112 syn match idlImportString +"\f\+"+ skipempty skipwhite nextgroup=idlError,idlSemiColon
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
113 syn keyword idlImport import skipempty skipwhite nextgroup=idlImportString
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
114
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
115 syn region idlAttributes start="\[" end="\]" contains=idlAttribute,idlAttributeParam,idlErrorBracket,idlErrorBrace,idlComment
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
116 syn keyword idlAttribute contained propput propget propputref id helpstring object uuid pointer_default
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
117 if !exists('idl_no_ms_extensions')
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
118 syn keyword idlAttribute contained nonextensible dual version aggregatable restricted hidden noncreatable oleautomation
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
119 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
120 syn region idlAttributeParam contained start="(" end=")" contains=idlString,idlUuid,idlLiteral,idlErrorBrace,idlErrorSquareBracket
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
121 " skipwhite nextgroup=idlArraySize,idlParmList contains=idlArraySize,idlLiteral
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
122 syn match idlErrorBrace contained "}"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
123 syn match idlErrorBracket contained ")"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
124 syn match idlErrorSquareBracket contained "\]"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
125
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
126 syn match idlUuid contained +[0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}+
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
127
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
128 " Raises
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
129 syn keyword idlRaises contained raises skipempty skipwhite nextgroup=idlRaises,idlContext,idlError,idlSemiColon
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
130
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
131 " Context
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
132 syn keyword idlContext contained context skipempty skipwhite nextgroup=idlRaises,idlContext,idlError,idlSemiColon
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
133
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
134 " Operation
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
135 syn match idlParmList contained "," skipempty skipwhite nextgroup=idlOpParms
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
136 syn region idlArraySize contained start="\[" end="\]" skipempty skipwhite nextgroup=idlArraySize,idlParmList contains=idlArraySize,idlLiteral
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
137 syn match idlParmName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlParmList,idlArraySize
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
138 syn keyword idlParmInt contained short long skipempty skipwhite nextgroup=idlParmName
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
139 syn keyword idlParmType contained unsigned skipempty skipwhite nextgroup=idlParmInt
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
140 syn region idlD3 contained start="<" end=">" skipempty skipwhite nextgroup=idlParmName contains=idlString,idlLiteral
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
141 syn keyword idlParmType contained string skipempty skipwhite nextgroup=idlD3,idlParmName
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
142 syn keyword idlParmType contained void float double char boolean octet any skipempty skipwhite nextgroup=idlParmName
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
143 syn match idlParmType contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlParmName
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
144 syn keyword idlOpParms contained in out inout skipempty skipwhite nextgroup=idlParmType
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
145
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
146 if !exists('idl_no_ms_extensions')
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
147 syn keyword idlOpParms contained retval optional skipempty skipwhite nextgroup=idlParmType
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
148 syn match idlOpParms contained +\<\(iid_is\|defaultvalue\)\s*([^)]*)+ skipempty skipwhite nextgroup=idlParamType
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
149
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
150 syn keyword idlVariantType contained BSTR VARIANT VARIANT_BOOL long short unsigned double CURRENCY DATE
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
151 syn region idlSafeArray contained matchgroup=idlVariantType start=+SAFEARRAY(\s*+ end=+)+ contains=idlVariantType
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
152 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
153
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
154 syn region idlOpContents contained start="(" end=")" skipempty skipwhite nextgroup=idlRaises,idlContext,idlError,idlSemiColon contains=idlOpParms,idlSafeArray,idlVariantType,@idlCommentable
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
155 syn match idlOpName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlOpContents
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
156 syn keyword idlOpInt contained short long skipempty skipwhite nextgroup=idlOpName
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
157 syn region idlD2 contained start="<" end=">" skipempty skipwhite nextgroup=idlOpName contains=idlString,idlLiteral
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
158 syn keyword idlOp contained unsigned skipempty skipwhite nextgroup=idlOpInt
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
159 syn keyword idlOp contained string skipempty skipwhite nextgroup=idlD2,idlOpName
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
160 syn keyword idlOp contained void float double char boolean octet any skipempty skipwhite nextgroup=idlOpName
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
161 syn match idlOp contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlOpName
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
162 syn keyword idlOp contained void skipempty skipwhite nextgroup=idlOpName
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
163 syn keyword idlOneWayOp contained oneway skipempty skipwhite nextgroup=idOp
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
164
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
165 " Enum
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
166 syn region idlEnumContents contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon,idlSimpDecl contains=idlId,idlAttributes,@idlCommentable
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
167 syn match idlEnumName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlEnumContents
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
168 syn keyword idlEnum enum skipempty skipwhite nextgroup=idlEnumName,idlEnumContents
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
169
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
170 " Typedef
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
171 syn keyword idlTypedef typedef skipempty skipwhite nextgroup=idlTypedefOtherTypeQualifier,idlDefBaseType,idlDefBaseTypeInt,idlDefSeqType,idlDefv1Enum,idlDefEnum,idlDefOtherType,idlDefAttributes,idlError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
172
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
173 if !exists('idl_no_extensions')
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
174 syn keyword idlTypedefOtherTypeQualifier contained struct enum interface nextgroup=idlDefBaseType,idlDefBaseTypeInt,idlDefSeqType,idlDefv1Enum,idlDefEnum,idlDefOtherType,idlDefAttributes,idlError skipwhite
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
175
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
176 syn region idlDefAttributes contained start="\[" end="\]" contains=idlAttribute,idlAttributeParam,idlErrorBracket,idlErrorBrace skipempty skipwhite nextgroup=idlDefBaseType,idlDefBaseTypeInt,idlDefSeqType,idlDefv1Enum,idlDefEnum,idlDefOtherType,idlError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
177
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
178 syn keyword idlDefBaseType contained float double char boolean octet any skipempty skipwhite nextgroup=idlTypedefDecl,idlError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
179 syn keyword idlDefBaseTypeInt contained short long skipempty skipwhite nextgroup=idlTypedefDecl,idlError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
180 syn match idlDefOtherType contained +\<\k\+\>+ skipempty nextgroup=idlTypedefDecl,idlError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
181 " syn keyword idlDefSeqType contained sequence skipempty skipwhite nextgroup=idlD4
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
182
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
183 " Enum typedef
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
184 syn keyword idlDefEnum contained enum skipempty skipwhite nextgroup=idlDefEnumName,idlDefEnumContents
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
185 syn match idlDefEnumName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlDefEnumContents,idlTypedefDecl
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
186 syn region idlDefEnumContents contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlTypedefDecl contains=idlId,idlAttributes
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
187
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
188 syn match idlTypedefDecl contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlError,idlSemiColon
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
189 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
190
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
191 " Struct
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
192 syn region idlStructContent contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon,idlSimpDecl contains=idlBaseType,idlBaseTypeInt,idlSeqType,@idlCommentable,idlEnum,idlUnion
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
193 syn match idlStructName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlStructContent
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
194 syn keyword idlStruct struct skipempty skipwhite nextgroup=idlStructName
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
195
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
196 " Exception
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
197 syn keyword idlException exception skipempty skipwhite nextgroup=idlStructName
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
198
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
199 " Union
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
200 syn match idlColon contained ":" skipempty skipwhite nextgroup=idlCase,idlSeqType,idlBaseType,idlBaseTypeInt
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
201 syn region idlCaseLabel contained start="" skip="::" end=":"me=e-1 skipempty skipwhite nextgroup=idlColon contains=idlLiteral,idlString
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
202 syn keyword idlCase contained case skipempty skipwhite nextgroup=idlCaseLabel
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
203 syn keyword idlCase contained default skipempty skipwhite nextgroup=idlColon
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
204 syn region idlUnionContent contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon,idlSimpDecl contains=idlCase
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
205 syn region idlSwitchType contained start="(" end=")" skipempty skipwhite nextgroup=idlUnionContent
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
206 syn keyword idlUnionSwitch contained switch skipempty skipwhite nextgroup=idlSwitchType
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
207 syn match idlUnionName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlUnionSwitch
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
208 syn keyword idlUnion union skipempty skipwhite nextgroup=idlUnionName
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
209
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
210 if !exists('idl_no_extensions')
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
211 syn sync match idlInterfaceSync grouphere idlInterfaceContent "\<\(disp\)\=interface\>\s\+\k\+\s*:\s*\k\+\_s*{" skipempty skipwhite nextgroup=idlError,idlSemiColon contains=@idlContentCluster,@idlCommentable
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
212 syn sync maxlines=1000 minlines=100
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
213 else
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
214 syn sync lines=200
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
215 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
216 " syn sync fromstart
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
217
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
218 if !exists("did_idl_syntax_inits")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
219 let did_idl_syntax_inits = 1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
220 " The default methods for highlighting. Can be overridden later
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
221 command -nargs=+ HiLink hi def link <args>
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
222
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
223 HiLink idlInclude Include
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
224 HiLink idlPreProc PreProc
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
225 HiLink idlPreCondit PreCondit
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
226 HiLink idlDefine Macro
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
227 HiLink idlIncluded String
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
228 HiLink idlString String
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
229 HiLink idlComment Comment
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
230 HiLink idlTodo Todo
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
231 HiLink idlLiteral Number
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
232 HiLink idlUuid Number
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
233 HiLink idlType Type
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
234 HiLink idlVariantType idlType
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
235
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
236 HiLink idlModule Keyword
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
237 HiLink idlInterface Keyword
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
238 HiLink idlEnum Keyword
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
239 HiLink idlStruct Keyword
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
240 HiLink idlUnion Keyword
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
241 HiLink idlTypedef Keyword
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
242 HiLink idlException Keyword
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
243 HiLink idlTypedefOtherTypeQualifier keyword
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
244
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
245 HiLink idlModuleName Typedef
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
246 HiLink idlInterfaceName Typedef
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
247 HiLink idlEnumName Typedef
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
248 HiLink idlStructName Typedef
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
249 HiLink idlUnionName Typedef
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
250
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
251 HiLink idlBaseTypeInt idlType
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
252 HiLink idlBaseType idlType
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
253 HiLink idlSeqType idlType
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
254 HiLink idlD1 Paren
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
255 HiLink idlD2 Paren
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
256 HiLink idlD3 Paren
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
257 HiLink idlD4 Paren
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
258 "HiLink idlArraySize Paren
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
259 "HiLink idlArraySize1 Paren
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
260 HiLink idlModuleContent Paren
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
261 HiLink idlUnionContent Paren
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
262 HiLink idlStructContent Paren
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
263 HiLink idlEnumContents Paren
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
264 HiLink idlInterfaceContent Paren
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
265
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
266 HiLink idlSimpDecl Identifier
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
267 HiLink idlROAttr StorageClass
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
268 HiLink idlAttr Keyword
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
269 HiLink idlConst StorageClass
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
270
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
271 HiLink idlOneWayOp StorageClass
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
272 HiLink idlOp idlType
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
273 HiLink idlParmType idlType
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
274 HiLink idlOpName Function
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
275 HiLink idlOpParms SpecialComment
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
276 HiLink idlParmName Identifier
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
277 HiLink idlInheritFrom Identifier
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
278 HiLink idlAttribute SpecialComment
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
279
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
280 HiLink idlId Constant
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
281 "HiLink idlCase Keyword
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
282 HiLink idlCaseLabel Constant
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
283
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
284 HiLink idlErrorBracket Error
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
285 HiLink idlErrorBrace Error
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
286 HiLink idlErrorSquareBracket Error
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
287
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
288 HiLink idlImport Keyword
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
289 HiLink idlImportString idlString
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
290 HiLink idlCoclassAttribute StorageClass
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
291 HiLink idlLibrary Keyword
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
292 HiLink idlImportlib Keyword
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
293 HiLink idlCoclass Keyword
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
294 HiLink idlLibraryName Typedef
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
295 HiLink idlCoclassName Typedef
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
296 " hi idlLibraryContent guifg=red
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
297 HiLink idlTypedefDecl Typedef
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
298 HiLink idlDefEnum Keyword
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
299 HiLink idlDefv1Enum Keyword
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
300 HiLink idlDefEnumName Typedef
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
301 HiLink idlDefEnumContents Paren
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
302 HiLink idlDefBaseTypeInt idlType
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
303 HiLink idlDefBaseType idlType
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
304 HiLink idlDefSeqType idlType
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
305 HiLink idlInterfaceSections Label
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
306
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
307 if exists("idlsyntax_showerror")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
308 if exists("idlsyntax_showerror_soft")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
309 hi default idlError guibg=#d0ffd0
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
310 else
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
311 HiLink idlError Error
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
312 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
313 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
314 delcommand HiLink
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
315 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
316
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
317 let b:current_syntax = "idl"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
318
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
319 " vim: sw=2 et