1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: IDL (Interface Description Language) 39e54a0e7SBram Moolenaar" Created By: Jody Goldberg 49e54a0e7SBram Moolenaar" Maintainer: Michael Geddes <[email protected]> 56be7f873SBram Moolenaar" Last Change: 2012 Jan 11 69e54a0e7SBram Moolenaar 7071d4279SBram Moolenaar 8071d4279SBram Moolenaar" This is an experiment. IDL's structure is simple enough to permit a full 9071d4279SBram Moolenaar" grammar based approach to rather than using a few heuristics. The result 10*6c391a74SBram Moolenaar" is large and somewhat repetitive but seems to work. 11071d4279SBram Moolenaar 125eb86f91SBram Moolenaar" There are some Microsoft extensions to idl files that are here. Some of 135eb86f91SBram Moolenaar" them are disabled by defining idl_no_ms_extensions. 145eb86f91SBram Moolenaar" 155eb86f91SBram Moolenaar" The more complex of the extensions are disabled by defining idl_no_extensions. 165eb86f91SBram Moolenaar" 179e54a0e7SBram Moolenaar" History: 189e54a0e7SBram Moolenaar" 2.0: Michael's new version 199e54a0e7SBram Moolenaar" 2.1: Support for Vim 7 spell (Anduin Withers) 209e54a0e7SBram Moolenaar" 215eb86f91SBram Moolenaar 225eb86f91SBram Moolenaarif exists("b:current_syntax") 23071d4279SBram Moolenaar finish 24071d4279SBram Moolenaarendif 25071d4279SBram Moolenaar 266be7f873SBram Moolenaarlet s:cpo_save = &cpo 276be7f873SBram Moolenaartry 286be7f873SBram Moolenaar set cpo&vim 296be7f873SBram Moolenaar 305eb86f91SBram Moolenaar if exists("idlsyntax_showerror") 315eb86f91SBram Moolenaar syn match idlError +\S+ skipwhite skipempty nextgroup=idlError 325eb86f91SBram Moolenaar endif 335eb86f91SBram Moolenaar 345eb86f91SBram Moolenaar syn region idlCppQuote start='\<cpp_quote\s*(' end=')' contains=idlString 355eb86f91SBram Moolenaar 36071d4279SBram Moolenaar " Misc basic 375eb86f91SBram Moolenaar syn match idlId contained "[a-zA-Z][a-zA-Z0-9_]*" skipwhite skipempty nextgroup=idlEnumComma,idlEnumNumber 385eb86f91SBram Moolenaar syn match idlEnumComma contained "," 395eb86f91SBram Moolenaar syn match idlEnumNumber contained "=" skipwhite skipempty nextgroup=idlString,idlLiteral 40071d4279SBram Moolenaar syn match idlSemiColon contained ";" 41071d4279SBram Moolenaar syn match idlCommaArg contained "," skipempty skipwhite nextgroup=idlSimpDecl 425eb86f91SBram Moolenaar syn region idlArraySize1 contained start=:\[: end=:\]: skipempty skipwhite nextgroup=idlArraySize1,idlError,idlSemiColon,idlCommaArg contains=idlArraySize1,idlLiteral 435eb86f91SBram Moolenaar syn match idlSimpDecl contained "[a-zA-Z][a-zA-Z0-9_]*" skipempty skipwhite nextgroup=idlError,idlSemiColon,idlCommaArg,idlArraySize1 449e54a0e7SBram Moolenaar syn region idlString contained start=+"+ skip=+\\\(\\\\\)*"+ end=+"+ contains=@Spell 45071d4279SBram Moolenaar syn match idlLiteral contained "[1-9]\d*\(\.\d*\)\=" 465eb86f91SBram Moolenaar syn match idlLiteral contained "0" 47071d4279SBram Moolenaar syn match idlLiteral contained "\.\d\+" 485eb86f91SBram Moolenaar syn match idlLiteral contained "0x[0-9A-Fa-f]\+" 495eb86f91SBram Moolenaar syn match idlLiteral contained "0[0-7]\+" 50071d4279SBram Moolenaar syn keyword idlLiteral contained TRUE FALSE 51071d4279SBram Moolenaar 52071d4279SBram Moolenaar " Comments 53071d4279SBram Moolenaar syn keyword idlTodo contained TODO FIXME XXX 549e54a0e7SBram Moolenaar syn region idlComment start="/\*" end="\*/" contains=idlTodo,@Spell 559e54a0e7SBram Moolenaar syn match idlComment "//.*" contains=idlTodo,@Spell 56071d4279SBram Moolenaar syn match idlCommentError "\*/" 57071d4279SBram Moolenaar 58071d4279SBram Moolenaar " C style Preprocessor 59071d4279SBram Moolenaar syn region idlIncluded contained start=+"+ skip=+\\\(\\\\\)*"+ end=+"+ 60071d4279SBram Moolenaar syn match idlIncluded contained "<[^>]*>" 61071d4279SBram Moolenaar syn match idlInclude "^[ \t]*#[ \t]*include\>[ \t]*["<]" contains=idlIncluded,idlString 62071d4279SBram Moolenaar syn region idlPreCondit start="^[ \t]*#[ \t]*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=idlComment,idlCommentError 63071d4279SBram Moolenaar syn region idlDefine start="^[ \t]*#[ \t]*\(define\>\|undef\>\)" skip="\\$" end="$" contains=idlLiteral,idlString 64071d4279SBram Moolenaar 65071d4279SBram Moolenaar " Constants 66071d4279SBram Moolenaar syn keyword idlConst const skipempty skipwhite nextgroup=idlBaseType,idlBaseTypeInt 67071d4279SBram Moolenaar 68071d4279SBram Moolenaar " Attribute 69071d4279SBram Moolenaar syn keyword idlROAttr readonly skipempty skipwhite nextgroup=idlAttr 70071d4279SBram Moolenaar syn keyword idlAttr attribute skipempty skipwhite nextgroup=idlBaseTypeInt,idlBaseType 71071d4279SBram Moolenaar 72071d4279SBram Moolenaar " Types 73071d4279SBram Moolenaar syn region idlD4 contained start="<" end=">" skipempty skipwhite nextgroup=idlSimpDecl contains=idlSeqType,idlBaseTypeInt,idlBaseType,idlLiteral 74071d4279SBram Moolenaar syn keyword idlSeqType contained sequence skipempty skipwhite nextgroup=idlD4 75071d4279SBram Moolenaar syn keyword idlBaseType contained float double char boolean octet any skipempty skipwhite nextgroup=idlSimpDecl 76071d4279SBram Moolenaar syn keyword idlBaseTypeInt contained short long skipempty skipwhite nextgroup=idlSimpDecl 77071d4279SBram Moolenaar syn keyword idlBaseType contained unsigned skipempty skipwhite nextgroup=idlBaseTypeInt 78071d4279SBram Moolenaar syn region idlD1 contained start="<" end=">" skipempty skipwhite nextgroup=idlSimpDecl contains=idlString,idlLiteral 79071d4279SBram Moolenaar syn keyword idlBaseType contained string skipempty skipwhite nextgroup=idlD1,idlSimpDecl 80071d4279SBram Moolenaar syn match idlBaseType contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlSimpDecl 81071d4279SBram Moolenaar 82071d4279SBram Moolenaar " Modules 835eb86f91SBram Moolenaar syn region idlModuleContent contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon contains=idlUnion,idlStruct,idlEnum,idlInterface,idlComment,idlTypedef,idlConst,idlException,idlModule 845eb86f91SBram Moolenaar syn match idlModuleName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlModuleContent,idlError,idlSemiColon 85071d4279SBram Moolenaar syn keyword idlModule module skipempty skipwhite nextgroup=idlModuleName 86071d4279SBram Moolenaar 87071d4279SBram Moolenaar " Interfaces 885eb86f91SBram Moolenaar syn cluster idlCommentable contains=idlComment 895eb86f91SBram Moolenaar syn cluster idlContentCluster contains=idlUnion,idlStruct,idlEnum,idlROAttr,idlAttr,idlOp,idlOneWayOp,idlException,idlConst,idlTypedef,idlAttributes,idlErrorSquareBracket,idlErrorBracket,idlInterfaceSections 905eb86f91SBram Moolenaar 915eb86f91SBram Moolenaar syn region idlInterfaceContent contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon contains=@idlContentCluster,@idlCommentable 92071d4279SBram Moolenaar syn match idlInheritFrom2 contained "," skipempty skipwhite nextgroup=idlInheritFrom 93071d4279SBram Moolenaar syn match idlInheritFrom contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlInheritFrom2,idlInterfaceContent 94071d4279SBram Moolenaar syn match idlInherit contained ":" skipempty skipwhite nextgroup=idlInheritFrom 955eb86f91SBram Moolenaar syn match idlInterfaceName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlInterfaceContent,idlInherit,idlError,idlSemiColon 965eb86f91SBram Moolenaar syn keyword idlInterface interface dispinterface skipempty skipwhite nextgroup=idlInterfaceName 975eb86f91SBram Moolenaar syn keyword idlInterfaceSections contained properties methods skipempty skipwhite nextgroup=idlSectionColon,idlError 985eb86f91SBram Moolenaar syn match idlSectionColon contained ":" 99071d4279SBram Moolenaar 100071d4279SBram Moolenaar 1015eb86f91SBram Moolenaar syn match idlLibraryName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlLibraryContent,idlError,idlSemiColon 1025eb86f91SBram Moolenaar syn keyword idlLibrary library skipempty skipwhite nextgroup=idlLibraryName 1035eb86f91SBram Moolenaar syn region idlLibraryContent contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon contains=@idlCommentable,idlAttributes,idlErrorSquareBracket,idlErrorBracket,idlImportlib,idlCoclass,idlTypedef,idlInterface 1045eb86f91SBram Moolenaar 1055eb86f91SBram Moolenaar syn keyword idlImportlib contained importlib skipempty skipwhite nextgroup=idlStringArg 1065eb86f91SBram Moolenaar syn region idlStringArg contained start="(" end=")" contains=idlString nextgroup=idlError,idlSemiColon,idlErrorBrace,idlErrorSquareBracket 1075eb86f91SBram Moolenaar 1085eb86f91SBram Moolenaar syn keyword idlCoclass coclass contained skipempty skipwhite nextgroup=idlCoclassName 1095eb86f91SBram Moolenaar syn match idlCoclassName "[a-zA-Z0-9_]\+" contained skipempty skipwhite nextgroup=idlCoclassDefinition,idlError,idlSemiColon 1105eb86f91SBram Moolenaar 1115eb86f91SBram Moolenaar syn region idlCoclassDefinition contained start="{" end="}" contains=idlCoclassAttributes,idlInterface,idlErrorBracket,idlErrorSquareBracket skipempty skipwhite nextgroup=idlError,idlSemiColon 1125eb86f91SBram Moolenaar syn region idlCoclassAttributes contained start=+\[+ end=+]+ skipempty skipwhite nextgroup=idlInterface contains=idlErrorBracket,idlErrorBrace,idlCoclassAttribute 1135eb86f91SBram Moolenaar syn keyword idlCoclassAttribute contained default source 1145eb86f91SBram Moolenaar "syn keyword idlInterface interface skipempty skipwhite nextgroup=idlInterfaceStubName 1155eb86f91SBram Moolenaar 1165eb86f91SBram Moolenaar syn match idlImportString +"\f\+"+ skipempty skipwhite nextgroup=idlError,idlSemiColon 1175eb86f91SBram Moolenaar syn keyword idlImport import skipempty skipwhite nextgroup=idlImportString 1185eb86f91SBram Moolenaar 1195eb86f91SBram Moolenaar syn region idlAttributes start="\[" end="\]" contains=idlAttribute,idlAttributeParam,idlErrorBracket,idlErrorBrace,idlComment 1205eb86f91SBram Moolenaar syn keyword idlAttribute contained propput propget propputref id helpstring object uuid pointer_default 1215eb86f91SBram Moolenaar if !exists('idl_no_ms_extensions') 1225eb86f91SBram Moolenaar syn keyword idlAttribute contained nonextensible dual version aggregatable restricted hidden noncreatable oleautomation 1235eb86f91SBram Moolenaar endif 1245eb86f91SBram Moolenaar syn region idlAttributeParam contained start="(" end=")" contains=idlString,idlUuid,idlLiteral,idlErrorBrace,idlErrorSquareBracket 1255eb86f91SBram Moolenaar " skipwhite nextgroup=idlArraySize,idlParmList contains=idlArraySize,idlLiteral 1265eb86f91SBram Moolenaar syn match idlErrorBrace contained "}" 1275eb86f91SBram Moolenaar syn match idlErrorBracket contained ")" 1285eb86f91SBram Moolenaar syn match idlErrorSquareBracket contained "\]" 1295eb86f91SBram Moolenaar 1305eb86f91SBram Moolenaar syn match idlUuid contained +[0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}+ 1315eb86f91SBram Moolenaar 132071d4279SBram Moolenaar " Raises 1335eb86f91SBram Moolenaar syn keyword idlRaises contained raises skipempty skipwhite nextgroup=idlRaises,idlContext,idlError,idlSemiColon 134071d4279SBram Moolenaar 135071d4279SBram Moolenaar " Context 1365eb86f91SBram Moolenaar syn keyword idlContext contained context skipempty skipwhite nextgroup=idlRaises,idlContext,idlError,idlSemiColon 137071d4279SBram Moolenaar 138071d4279SBram Moolenaar " Operation 139071d4279SBram Moolenaar syn match idlParmList contained "," skipempty skipwhite nextgroup=idlOpParms 140071d4279SBram Moolenaar syn region idlArraySize contained start="\[" end="\]" skipempty skipwhite nextgroup=idlArraySize,idlParmList contains=idlArraySize,idlLiteral 141071d4279SBram Moolenaar syn match idlParmName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlParmList,idlArraySize 142071d4279SBram Moolenaar syn keyword idlParmInt contained short long skipempty skipwhite nextgroup=idlParmName 143071d4279SBram Moolenaar syn keyword idlParmType contained unsigned skipempty skipwhite nextgroup=idlParmInt 144071d4279SBram Moolenaar syn region idlD3 contained start="<" end=">" skipempty skipwhite nextgroup=idlParmName contains=idlString,idlLiteral 145071d4279SBram Moolenaar syn keyword idlParmType contained string skipempty skipwhite nextgroup=idlD3,idlParmName 146071d4279SBram Moolenaar syn keyword idlParmType contained void float double char boolean octet any skipempty skipwhite nextgroup=idlParmName 147071d4279SBram Moolenaar syn match idlParmType contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlParmName 148071d4279SBram Moolenaar syn keyword idlOpParms contained in out inout skipempty skipwhite nextgroup=idlParmType 149071d4279SBram Moolenaar 1505eb86f91SBram Moolenaar if !exists('idl_no_ms_extensions') 1515eb86f91SBram Moolenaar syn keyword idlOpParms contained retval optional skipempty skipwhite nextgroup=idlParmType 1525eb86f91SBram Moolenaar syn match idlOpParms contained +\<\(iid_is\|defaultvalue\)\s*([^)]*)+ skipempty skipwhite nextgroup=idlParamType 1535eb86f91SBram Moolenaar 1545eb86f91SBram Moolenaar syn keyword idlVariantType contained BSTR VARIANT VARIANT_BOOL long short unsigned double CURRENCY DATE 1555eb86f91SBram Moolenaar syn region idlSafeArray contained matchgroup=idlVariantType start=+SAFEARRAY(\s*+ end=+)+ contains=idlVariantType 1565eb86f91SBram Moolenaar endif 1575eb86f91SBram Moolenaar 1585eb86f91SBram Moolenaar syn region idlOpContents contained start="(" end=")" skipempty skipwhite nextgroup=idlRaises,idlContext,idlError,idlSemiColon contains=idlOpParms,idlSafeArray,idlVariantType,@idlCommentable 159071d4279SBram Moolenaar syn match idlOpName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlOpContents 160071d4279SBram Moolenaar syn keyword idlOpInt contained short long skipempty skipwhite nextgroup=idlOpName 161071d4279SBram Moolenaar syn region idlD2 contained start="<" end=">" skipempty skipwhite nextgroup=idlOpName contains=idlString,idlLiteral 162071d4279SBram Moolenaar syn keyword idlOp contained unsigned skipempty skipwhite nextgroup=idlOpInt 163071d4279SBram Moolenaar syn keyword idlOp contained string skipempty skipwhite nextgroup=idlD2,idlOpName 164071d4279SBram Moolenaar syn keyword idlOp contained void float double char boolean octet any skipempty skipwhite nextgroup=idlOpName 165071d4279SBram Moolenaar syn match idlOp contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlOpName 166071d4279SBram Moolenaar syn keyword idlOp contained void skipempty skipwhite nextgroup=idlOpName 167071d4279SBram Moolenaar syn keyword idlOneWayOp contained oneway skipempty skipwhite nextgroup=idOp 168071d4279SBram Moolenaar 169071d4279SBram Moolenaar " Enum 1705eb86f91SBram Moolenaar syn region idlEnumContents contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon,idlSimpDecl contains=idlId,idlAttributes,@idlCommentable 171071d4279SBram Moolenaar syn match idlEnumName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlEnumContents 1725eb86f91SBram Moolenaar syn keyword idlEnum enum skipempty skipwhite nextgroup=idlEnumName,idlEnumContents 173071d4279SBram Moolenaar 174071d4279SBram Moolenaar " Typedef 1755eb86f91SBram Moolenaar syn keyword idlTypedef typedef skipempty skipwhite nextgroup=idlTypedefOtherTypeQualifier,idlDefBaseType,idlDefBaseTypeInt,idlDefSeqType,idlDefv1Enum,idlDefEnum,idlDefOtherType,idlDefAttributes,idlError 1765eb86f91SBram Moolenaar 1775eb86f91SBram Moolenaar if !exists('idl_no_extensions') 1785eb86f91SBram Moolenaar syn keyword idlTypedefOtherTypeQualifier contained struct enum interface nextgroup=idlDefBaseType,idlDefBaseTypeInt,idlDefSeqType,idlDefv1Enum,idlDefEnum,idlDefOtherType,idlDefAttributes,idlError skipwhite 1795eb86f91SBram Moolenaar 1805eb86f91SBram Moolenaar syn region idlDefAttributes contained start="\[" end="\]" contains=idlAttribute,idlAttributeParam,idlErrorBracket,idlErrorBrace skipempty skipwhite nextgroup=idlDefBaseType,idlDefBaseTypeInt,idlDefSeqType,idlDefv1Enum,idlDefEnum,idlDefOtherType,idlError 1815eb86f91SBram Moolenaar 1825eb86f91SBram Moolenaar syn keyword idlDefBaseType contained float double char boolean octet any skipempty skipwhite nextgroup=idlTypedefDecl,idlError 1835eb86f91SBram Moolenaar syn keyword idlDefBaseTypeInt contained short long skipempty skipwhite nextgroup=idlTypedefDecl,idlError 1845eb86f91SBram Moolenaar syn match idlDefOtherType contained +\<\k\+\>+ skipempty nextgroup=idlTypedefDecl,idlError 1855eb86f91SBram Moolenaar " syn keyword idlDefSeqType contained sequence skipempty skipwhite nextgroup=idlD4 1865eb86f91SBram Moolenaar 1875eb86f91SBram Moolenaar " Enum typedef 1885eb86f91SBram Moolenaar syn keyword idlDefEnum contained enum skipempty skipwhite nextgroup=idlDefEnumName,idlDefEnumContents 1895eb86f91SBram Moolenaar syn match idlDefEnumName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlDefEnumContents,idlTypedefDecl 1905eb86f91SBram Moolenaar syn region idlDefEnumContents contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlTypedefDecl contains=idlId,idlAttributes 1915eb86f91SBram Moolenaar 1925eb86f91SBram Moolenaar syn match idlTypedefDecl contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlError,idlSemiColon 1935eb86f91SBram Moolenaar endif 194071d4279SBram Moolenaar 195071d4279SBram Moolenaar " Struct 1965eb86f91SBram Moolenaar syn region idlStructContent contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon,idlSimpDecl contains=idlBaseType,idlBaseTypeInt,idlSeqType,@idlCommentable,idlEnum,idlUnion 197071d4279SBram Moolenaar syn match idlStructName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlStructContent 198071d4279SBram Moolenaar syn keyword idlStruct struct skipempty skipwhite nextgroup=idlStructName 199071d4279SBram Moolenaar 200071d4279SBram Moolenaar " Exception 201071d4279SBram Moolenaar syn keyword idlException exception skipempty skipwhite nextgroup=idlStructName 202071d4279SBram Moolenaar 203071d4279SBram Moolenaar " Union 204071d4279SBram Moolenaar syn match idlColon contained ":" skipempty skipwhite nextgroup=idlCase,idlSeqType,idlBaseType,idlBaseTypeInt 205071d4279SBram Moolenaar syn region idlCaseLabel contained start="" skip="::" end=":"me=e-1 skipempty skipwhite nextgroup=idlColon contains=idlLiteral,idlString 206071d4279SBram Moolenaar syn keyword idlCase contained case skipempty skipwhite nextgroup=idlCaseLabel 207071d4279SBram Moolenaar syn keyword idlCase contained default skipempty skipwhite nextgroup=idlColon 2085eb86f91SBram Moolenaar syn region idlUnionContent contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon,idlSimpDecl contains=idlCase 209071d4279SBram Moolenaar syn region idlSwitchType contained start="(" end=")" skipempty skipwhite nextgroup=idlUnionContent 210071d4279SBram Moolenaar syn keyword idlUnionSwitch contained switch skipempty skipwhite nextgroup=idlSwitchType 211071d4279SBram Moolenaar syn match idlUnionName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlUnionSwitch 212071d4279SBram Moolenaar syn keyword idlUnion union skipempty skipwhite nextgroup=idlUnionName 213071d4279SBram Moolenaar 2145eb86f91SBram Moolenaar if !exists('idl_no_extensions') 2155eb86f91SBram Moolenaar syn sync match idlInterfaceSync grouphere idlInterfaceContent "\<\(disp\)\=interface\>\s\+\k\+\s*:\s*\k\+\_s*{" skipempty skipwhite nextgroup=idlError,idlSemiColon contains=@idlContentCluster,@idlCommentable 2165eb86f91SBram Moolenaar syn sync maxlines=1000 minlines=100 217071d4279SBram Moolenaar else 2185eb86f91SBram Moolenaar syn sync lines=200 219071d4279SBram Moolenaar endif 2205eb86f91SBram Moolenaar " syn sync fromstart 2215eb86f91SBram Moolenaar 2225eb86f91SBram Moolenaar if !exists("did_idl_syntax_inits") 2235eb86f91SBram Moolenaar let did_idl_syntax_inits = 1 2245eb86f91SBram Moolenaar " The default methods for highlighting. Can be overridden later 225071d4279SBram Moolenaar 226f37506f6SBram Moolenaar hi def link idlInclude Include 227f37506f6SBram Moolenaar hi def link idlPreProc PreProc 228f37506f6SBram Moolenaar hi def link idlPreCondit PreCondit 229f37506f6SBram Moolenaar hi def link idlDefine Macro 230f37506f6SBram Moolenaar hi def link idlIncluded String 231f37506f6SBram Moolenaar hi def link idlString String 232f37506f6SBram Moolenaar hi def link idlComment Comment 233f37506f6SBram Moolenaar hi def link idlTodo Todo 234f37506f6SBram Moolenaar hi def link idlLiteral Number 235f37506f6SBram Moolenaar hi def link idlUuid Number 236f37506f6SBram Moolenaar hi def link idlType Type 237f37506f6SBram Moolenaar hi def link idlVariantType idlType 238071d4279SBram Moolenaar 239f37506f6SBram Moolenaar hi def link idlModule Keyword 240f37506f6SBram Moolenaar hi def link idlInterface Keyword 241f37506f6SBram Moolenaar hi def link idlEnum Keyword 242f37506f6SBram Moolenaar hi def link idlStruct Keyword 243f37506f6SBram Moolenaar hi def link idlUnion Keyword 244f37506f6SBram Moolenaar hi def link idlTypedef Keyword 245f37506f6SBram Moolenaar hi def link idlException Keyword 246f37506f6SBram Moolenaar hi def link idlTypedefOtherTypeQualifier keyword 247071d4279SBram Moolenaar 248f37506f6SBram Moolenaar hi def link idlModuleName Typedef 249f37506f6SBram Moolenaar hi def link idlInterfaceName Typedef 250f37506f6SBram Moolenaar hi def link idlEnumName Typedef 251f37506f6SBram Moolenaar hi def link idlStructName Typedef 252f37506f6SBram Moolenaar hi def link idlUnionName Typedef 253071d4279SBram Moolenaar 254f37506f6SBram Moolenaar hi def link idlBaseTypeInt idlType 255f37506f6SBram Moolenaar hi def link idlBaseType idlType 256f37506f6SBram Moolenaar hi def link idlSeqType idlType 257f37506f6SBram Moolenaar hi def link idlD1 Paren 258f37506f6SBram Moolenaar hi def link idlD2 Paren 259f37506f6SBram Moolenaar hi def link idlD3 Paren 260f37506f6SBram Moolenaar hi def link idlD4 Paren 261f37506f6SBram Moolenaar "hi def link idlArraySize Paren 262f37506f6SBram Moolenaar "hi def link idlArraySize1 Paren 263f37506f6SBram Moolenaar hi def link idlModuleContent Paren 264f37506f6SBram Moolenaar hi def link idlUnionContent Paren 265f37506f6SBram Moolenaar hi def link idlStructContent Paren 266f37506f6SBram Moolenaar hi def link idlEnumContents Paren 267f37506f6SBram Moolenaar hi def link idlInterfaceContent Paren 268071d4279SBram Moolenaar 269f37506f6SBram Moolenaar hi def link idlSimpDecl Identifier 270f37506f6SBram Moolenaar hi def link idlROAttr StorageClass 271f37506f6SBram Moolenaar hi def link idlAttr Keyword 272f37506f6SBram Moolenaar hi def link idlConst StorageClass 273071d4279SBram Moolenaar 274f37506f6SBram Moolenaar hi def link idlOneWayOp StorageClass 275f37506f6SBram Moolenaar hi def link idlOp idlType 276f37506f6SBram Moolenaar hi def link idlParmType idlType 277f37506f6SBram Moolenaar hi def link idlOpName Function 278f37506f6SBram Moolenaar hi def link idlOpParms SpecialComment 279f37506f6SBram Moolenaar hi def link idlParmName Identifier 280f37506f6SBram Moolenaar hi def link idlInheritFrom Identifier 281f37506f6SBram Moolenaar hi def link idlAttribute SpecialComment 282071d4279SBram Moolenaar 283f37506f6SBram Moolenaar hi def link idlId Constant 284f37506f6SBram Moolenaar "hi def link idlCase Keyword 285f37506f6SBram Moolenaar hi def link idlCaseLabel Constant 286071d4279SBram Moolenaar 287f37506f6SBram Moolenaar hi def link idlErrorBracket Error 288f37506f6SBram Moolenaar hi def link idlErrorBrace Error 289f37506f6SBram Moolenaar hi def link idlErrorSquareBracket Error 2905eb86f91SBram Moolenaar 291f37506f6SBram Moolenaar hi def link idlImport Keyword 292f37506f6SBram Moolenaar hi def link idlImportString idlString 293f37506f6SBram Moolenaar hi def link idlCoclassAttribute StorageClass 294f37506f6SBram Moolenaar hi def link idlLibrary Keyword 295f37506f6SBram Moolenaar hi def link idlImportlib Keyword 296f37506f6SBram Moolenaar hi def link idlCoclass Keyword 297f37506f6SBram Moolenaar hi def link idlLibraryName Typedef 298f37506f6SBram Moolenaar hi def link idlCoclassName Typedef 299f37506f6SBram Moolenaar " hi def link idlLibraryContent guifg=red 300f37506f6SBram Moolenaar hi def link idlTypedefDecl Typedef 301f37506f6SBram Moolenaar hi def link idlDefEnum Keyword 302f37506f6SBram Moolenaar hi def link idlDefv1Enum Keyword 303f37506f6SBram Moolenaar hi def link idlDefEnumName Typedef 304f37506f6SBram Moolenaar hi def link idlDefEnumContents Paren 305f37506f6SBram Moolenaar hi def link idlDefBaseTypeInt idlType 306f37506f6SBram Moolenaar hi def link idlDefBaseType idlType 307f37506f6SBram Moolenaar hi def link idlDefSeqType idlType 308f37506f6SBram Moolenaar hi def link idlInterfaceSections Label 3095eb86f91SBram Moolenaar 3105eb86f91SBram Moolenaar if exists("idlsyntax_showerror") 3115eb86f91SBram Moolenaar if exists("idlsyntax_showerror_soft") 3125eb86f91SBram Moolenaar hi default idlError guibg=#d0ffd0 3135eb86f91SBram Moolenaar else 314f37506f6SBram Moolenaar hi def link idlError Error 3155eb86f91SBram Moolenaar endif 3165eb86f91SBram Moolenaar endif 317071d4279SBram Moolenaar endif 318071d4279SBram Moolenaar 319071d4279SBram Moolenaar let b:current_syntax = "idl" 3206be7f873SBram Moolenaarfinally 3216be7f873SBram Moolenaar let &cpo = s:cpo_save 3226be7f873SBram Moolenaar unlet s:cpo_save 3236be7f873SBram Moolenaarendtry 3245eb86f91SBram Moolenaar" vim: sw=2 et 325