Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
idl.vim325 linesDownload Raw Back to syntax
1" Vim syntax file2" Language:    IDL (Interface Description Language)3" Created By:  Jody Goldberg4" Maintainer:  Michael Geddes <vim@frog.wheelycreek.net>5" Last Change:  2012 Jan 116 7 8" This is an experiment.  IDL's structure is simple enough to permit a full9" grammar based approach to rather than using a few heuristics.  The result10" is large and somewhat repetitive but seems to work.11 12" There are some Microsoft extensions to idl files that are here.  Some of13" them are disabled by defining idl_no_ms_extensions.14"15" The more complex of the extensions are disabled by defining idl_no_extensions.16"17" History:18" 2.0: Michael's new version19" 2.1: Support for Vim 7 spell (Anduin Withers)20"21 22if exists("b:current_syntax")23  finish24endif25 26let s:cpo_save = &cpo27try28  set cpo&vim29 30  if exists("idlsyntax_showerror")31    syn match idlError +\S+ skipwhite skipempty nextgroup=idlError32  endif33 34  syn region idlCppQuote start='\<cpp_quote\s*(' end=')' contains=idlString35 36  " Misc basic37  syn match   idlId          contained "[a-zA-Z][a-zA-Z0-9_]*" skipwhite skipempty nextgroup=idlEnumComma,idlEnumNumber38  syn match   idlEnumComma   contained ","39  syn match   idlEnumNumber  contained "=" skipwhite skipempty nextgroup=idlString,idlLiteral40  syn match   idlSemiColon   contained ";"41  syn match   idlCommaArg    contained ","                      skipempty skipwhite nextgroup=idlSimpDecl42  syn region  idlArraySize1  contained start=:\[: end=:\]:      skipempty skipwhite nextgroup=idlArraySize1,idlError,idlSemiColon,idlCommaArg contains=idlArraySize1,idlLiteral43  syn match   idlSimpDecl    contained "[a-zA-Z][a-zA-Z0-9_]*"  skipempty skipwhite nextgroup=idlError,idlSemiColon,idlCommaArg,idlArraySize144  syn region  idlString      contained start=+"+  skip=+\\\(\\\\\)*"+  end=+"+ contains=@Spell45  syn match   idlLiteral     contained "[1-9]\d*\(\.\d*\)\="46  syn match   idlLiteral     contained "0"47  syn match   idlLiteral     contained "\.\d\+"48  syn match   idlLiteral     contained "0x[0-9A-Fa-f]\+"49  syn match   idlLiteral     contained "0[0-7]\+"50  syn keyword idlLiteral     contained TRUE FALSE51 52  " Comments53  syn keyword idlTodo        contained TODO FIXME XXX54  syn region idlComment      start="/\*"  end="\*/" contains=idlTodo,@Spell55  syn match  idlComment      "//.*" contains=idlTodo,@Spell56  syn match  idlCommentError "\*/"57 58  " C style Preprocessor59  syn region idlIncluded    contained start=+"+  skip=+\\\(\\\\\)*"+  end=+"+60  syn match  idlIncluded    contained "<[^>]*>"61  syn match  idlInclude     "^[ \t]*#[ \t]*include\>[ \t]*["<]" contains=idlIncluded,idlString62  syn region idlPreCondit   start="^[ \t]*#[ \t]*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)"  skip="\\$"  end="$" contains=idlComment,idlCommentError63  syn region idlDefine      start="^[ \t]*#[ \t]*\(define\>\|undef\>\)" skip="\\$" end="$" contains=idlLiteral,idlString64 65  " Constants66  syn keyword idlConst    const                             skipempty skipwhite nextgroup=idlBaseType,idlBaseTypeInt67 68  " Attribute69  syn keyword idlROAttr   readonly                          skipempty skipwhite nextgroup=idlAttr70  syn keyword idlAttr     attribute                         skipempty skipwhite nextgroup=idlBaseTypeInt,idlBaseType71 72  " Types73  syn region  idlD4          contained start="<" end=">"    skipempty skipwhite nextgroup=idlSimpDecl contains=idlSeqType,idlBaseTypeInt,idlBaseType,idlLiteral74  syn keyword idlSeqType     contained sequence             skipempty skipwhite nextgroup=idlD475  syn keyword idlBaseType    contained float double char boolean octet any skipempty skipwhite nextgroup=idlSimpDecl76  syn keyword idlBaseTypeInt contained short long           skipempty skipwhite nextgroup=idlSimpDecl77  syn keyword idlBaseType    contained unsigned             skipempty skipwhite nextgroup=idlBaseTypeInt78  syn region  idlD1          contained start="<" end=">"    skipempty skipwhite nextgroup=idlSimpDecl contains=idlString,idlLiteral79  syn keyword idlBaseType    contained string               skipempty skipwhite nextgroup=idlD1,idlSimpDecl80  syn match   idlBaseType    contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*"  skipempty skipwhite nextgroup=idlSimpDecl81 82  " Modules83  syn region  idlModuleContent contained start="{" end="}"  skipempty skipwhite nextgroup=idlError,idlSemiColon contains=idlUnion,idlStruct,idlEnum,idlInterface,idlComment,idlTypedef,idlConst,idlException,idlModule84  syn match   idlModuleName  contained "[a-zA-Z0-9_]\+"     skipempty skipwhite nextgroup=idlModuleContent,idlError,idlSemiColon85  syn keyword idlModule      module                         skipempty skipwhite nextgroup=idlModuleName86 87  " Interfaces88  syn cluster idlCommentable contains=idlComment89  syn cluster idlContentCluster contains=idlUnion,idlStruct,idlEnum,idlROAttr,idlAttr,idlOp,idlOneWayOp,idlException,idlConst,idlTypedef,idlAttributes,idlErrorSquareBracket,idlErrorBracket,idlInterfaceSections90 91  syn region  idlInterfaceContent contained start="{" end="}"   skipempty skipwhite nextgroup=idlError,idlSemiColon contains=@idlContentCluster,@idlCommentable92  syn match   idlInheritFrom2 contained ","                     skipempty skipwhite nextgroup=idlInheritFrom93  syn match   idlInheritFrom contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlInheritFrom2,idlInterfaceContent94  syn match   idlInherit contained ":"                            skipempty skipwhite nextgroup=idlInheritFrom95  syn match   idlInterfaceName contained "[a-zA-Z0-9_]\+"       skipempty skipwhite nextgroup=idlInterfaceContent,idlInherit,idlError,idlSemiColon96  syn keyword idlInterface     interface dispinterface          skipempty skipwhite nextgroup=idlInterfaceName97  syn keyword idlInterfaceSections contained properties methods skipempty skipwhite nextgroup=idlSectionColon,idlError98  syn match   idlSectionColon contained ":"99 100 101  syn match   idlLibraryName  contained  "[a-zA-Z0-9_]\+"       skipempty skipwhite nextgroup=idlLibraryContent,idlError,idlSemiColon102  syn keyword idlLibrary      library                           skipempty skipwhite nextgroup=idlLibraryName103  syn region  idlLibraryContent contained start="{" end="}"     skipempty skipwhite nextgroup=idlError,idlSemiColon contains=@idlCommentable,idlAttributes,idlErrorSquareBracket,idlErrorBracket,idlImportlib,idlCoclass,idlTypedef,idlInterface104 105  syn keyword idlImportlib contained importlib                  skipempty skipwhite nextgroup=idlStringArg106  syn region idlStringArg contained start="(" end=")"           contains=idlString nextgroup=idlError,idlSemiColon,idlErrorBrace,idlErrorSquareBracket107 108  syn keyword idlCoclass coclass contained                      skipempty skipwhite nextgroup=idlCoclassName109  syn match   idlCoclassName "[a-zA-Z0-9_]\+" contained         skipempty skipwhite nextgroup=idlCoclassDefinition,idlError,idlSemiColon110 111  syn region idlCoclassDefinition contained start="{" end="}"   contains=idlCoclassAttributes,idlInterface,idlErrorBracket,idlErrorSquareBracket skipempty skipwhite nextgroup=idlError,idlSemiColon112  syn region idlCoclassAttributes contained start=+\[+ end=+]+  skipempty skipwhite nextgroup=idlInterface contains=idlErrorBracket,idlErrorBrace,idlCoclassAttribute113  syn keyword idlCoclassAttribute contained default source114  "syn keyword idlInterface       interface                      skipempty skipwhite nextgroup=idlInterfaceStubName115 116  syn match idlImportString       +"\f\+"+                      skipempty skipwhite nextgroup=idlError,idlSemiColon117  syn keyword idlImport           import                        skipempty skipwhite nextgroup=idlImportString118 119  syn region  idlAttributes start="\[" end="\]"                 contains=idlAttribute,idlAttributeParam,idlErrorBracket,idlErrorBrace,idlComment120  syn keyword idlAttribute contained propput propget propputref id helpstring object uuid pointer_default121  if !exists('idl_no_ms_extensions')122  syn keyword idlAttribute contained nonextensible dual version aggregatable restricted hidden noncreatable oleautomation123  endif124  syn region idlAttributeParam contained start="(" end=")"      contains=idlString,idlUuid,idlLiteral,idlErrorBrace,idlErrorSquareBracket125  " skipwhite nextgroup=idlArraySize,idlParmList contains=idlArraySize,idlLiteral126  syn match idlErrorBrace contained "}"127  syn match idlErrorBracket contained ")"128  syn match idlErrorSquareBracket contained "\]"129 130  syn match idlUuid         contained +[0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}+131 132  " Raises133  syn keyword idlRaises     contained raises               skipempty skipwhite nextgroup=idlRaises,idlContext,idlError,idlSemiColon134 135  " Context136  syn keyword idlContext    contained context              skipempty skipwhite nextgroup=idlRaises,idlContext,idlError,idlSemiColon137 138  " Operation139  syn match   idlParmList   contained ","                  skipempty skipwhite nextgroup=idlOpParms140  syn region  idlArraySize  contained start="\[" end="\]"  skipempty skipwhite nextgroup=idlArraySize,idlParmList contains=idlArraySize,idlLiteral141  syn match   idlParmName   contained "[a-zA-Z0-9_]\+"     skipempty skipwhite nextgroup=idlParmList,idlArraySize142  syn keyword idlParmInt    contained short long           skipempty skipwhite nextgroup=idlParmName143  syn keyword idlParmType   contained unsigned             skipempty skipwhite nextgroup=idlParmInt144  syn region  idlD3         contained start="<" end=">"    skipempty skipwhite nextgroup=idlParmName contains=idlString,idlLiteral145  syn keyword idlParmType   contained string               skipempty skipwhite nextgroup=idlD3,idlParmName146  syn keyword idlParmType   contained void float double char boolean octet any    skipempty skipwhite nextgroup=idlParmName147  syn match   idlParmType   contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlParmName148  syn keyword idlOpParms    contained in out inout         skipempty skipwhite nextgroup=idlParmType149 150  if !exists('idl_no_ms_extensions')151  syn keyword idlOpParms    contained retval optional      skipempty skipwhite nextgroup=idlParmType152    syn match idlOpParms contained +\<\(iid_is\|defaultvalue\)\s*([^)]*)+ skipempty skipwhite nextgroup=idlParamType153 154    syn keyword idlVariantType  contained BSTR VARIANT VARIANT_BOOL long short unsigned double CURRENCY DATE155    syn region idlSafeArray contained matchgroup=idlVariantType start=+SAFEARRAY(\s*+ end=+)+ contains=idlVariantType156  endif157 158  syn region  idlOpContents contained start="(" end=")"    skipempty skipwhite nextgroup=idlRaises,idlContext,idlError,idlSemiColon contains=idlOpParms,idlSafeArray,idlVariantType,@idlCommentable159  syn match   idlOpName   contained "[a-zA-Z0-9_]\+"       skipempty skipwhite nextgroup=idlOpContents160  syn keyword idlOpInt    contained short long             skipempty skipwhite nextgroup=idlOpName161  syn region  idlD2       contained start="<" end=">"      skipempty skipwhite nextgroup=idlOpName contains=idlString,idlLiteral162  syn keyword idlOp       contained unsigned               skipempty skipwhite nextgroup=idlOpInt163  syn keyword idlOp       contained string                 skipempty skipwhite nextgroup=idlD2,idlOpName164  syn keyword idlOp       contained void float double char boolean octet any  skipempty skipwhite nextgroup=idlOpName165  syn match   idlOp       contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlOpName166  syn keyword idlOp       contained void                   skipempty skipwhite nextgroup=idlOpName167  syn keyword idlOneWayOp contained oneway                 skipempty skipwhite nextgroup=idOp168 169  " Enum170  syn region  idlEnumContents contained start="{" end="}"  skipempty skipwhite nextgroup=idlError,idlSemiColon,idlSimpDecl contains=idlId,idlAttributes,@idlCommentable171  syn match   idlEnumName contained "[a-zA-Z0-9_]\+"       skipempty skipwhite nextgroup=idlEnumContents172  syn keyword idlEnum     enum                             skipempty skipwhite nextgroup=idlEnumName,idlEnumContents173 174  " Typedef175  syn keyword idlTypedef typedef                          skipempty skipwhite nextgroup=idlTypedefOtherTypeQualifier,idlDefBaseType,idlDefBaseTypeInt,idlDefSeqType,idlDefv1Enum,idlDefEnum,idlDefOtherType,idlDefAttributes,idlError176 177  if !exists('idl_no_extensions')178    syn keyword idlTypedefOtherTypeQualifier contained struct enum interface nextgroup=idlDefBaseType,idlDefBaseTypeInt,idlDefSeqType,idlDefv1Enum,idlDefEnum,idlDefOtherType,idlDefAttributes,idlError skipwhite179 180    syn region  idlDefAttributes        contained start="\[" end="\]" contains=idlAttribute,idlAttributeParam,idlErrorBracket,idlErrorBrace skipempty skipwhite nextgroup=idlDefBaseType,idlDefBaseTypeInt,idlDefSeqType,idlDefv1Enum,idlDefEnum,idlDefOtherType,idlError181 182    syn keyword idlDefBaseType      contained float double char boolean octet any  skipempty skipwhite nextgroup=idlTypedefDecl,idlError183    syn keyword idlDefBaseTypeInt   contained short long                           skipempty skipwhite nextgroup=idlTypedefDecl,idlError184    syn match idlDefOtherType       contained +\<\k\+\>+ skipempty                 nextgroup=idlTypedefDecl,idlError185    " syn keyword idlDefSeqType     contained sequence                             skipempty skipwhite nextgroup=idlD4186 187    " Enum typedef188    syn keyword idlDefEnum          contained enum skipempty                       skipwhite nextgroup=idlDefEnumName,idlDefEnumContents189    syn match   idlDefEnumName      contained "[a-zA-Z0-9_]\+"                     skipempty skipwhite nextgroup=idlDefEnumContents,idlTypedefDecl190    syn region  idlDefEnumContents  contained start="{" end="}"                    skipempty skipwhite nextgroup=idlError,idlTypedefDecl contains=idlId,idlAttributes191 192    syn match   idlTypedefDecl      contained "[a-zA-Z0-9_]\+"                     skipempty skipwhite nextgroup=idlError,idlSemiColon193  endif194 195  " Struct196  syn region  idlStructContent   contained start="{" end="}"   skipempty skipwhite nextgroup=idlError,idlSemiColon,idlSimpDecl contains=idlBaseType,idlBaseTypeInt,idlSeqType,@idlCommentable,idlEnum,idlUnion197  syn match   idlStructName      contained "[a-zA-Z0-9_]\+"    skipempty skipwhite nextgroup=idlStructContent198  syn keyword idlStruct          struct                        skipempty skipwhite nextgroup=idlStructName199 200  " Exception201  syn keyword idlException       exception                     skipempty skipwhite nextgroup=idlStructName202 203  " Union204  syn match   idlColon            contained ":"                skipempty skipwhite nextgroup=idlCase,idlSeqType,idlBaseType,idlBaseTypeInt205  syn region  idlCaseLabel        contained start="" skip="::" end=":"me=e-1 skipempty skipwhite nextgroup=idlColon contains=idlLiteral,idlString206  syn keyword idlCase             contained case               skipempty skipwhite nextgroup=idlCaseLabel207  syn keyword idlCase             contained default            skipempty skipwhite nextgroup=idlColon208  syn region  idlUnionContent     contained start="{" end="}"  skipempty skipwhite nextgroup=idlError,idlSemiColon,idlSimpDecl contains=idlCase209  syn region  idlSwitchType       contained start="(" end=")"  skipempty skipwhite nextgroup=idlUnionContent210  syn keyword idlUnionSwitch      contained switch             skipempty skipwhite nextgroup=idlSwitchType211  syn match   idlUnionName        contained "[a-zA-Z0-9_]\+"   skipempty skipwhite nextgroup=idlUnionSwitch212  syn keyword idlUnion            union                        skipempty skipwhite nextgroup=idlUnionName213 214  if !exists('idl_no_extensions')215    syn sync match  idlInterfaceSync grouphere idlInterfaceContent "\<\(disp\)\=interface\>\s\+\k\+\s*:\s*\k\+\_s*{" skipempty skipwhite nextgroup=idlError,idlSemiColon contains=@idlContentCluster,@idlCommentable216    syn sync maxlines=1000 minlines=100217  else218    syn sync lines=200219  endif220  " syn sync fromstart221 222  if !exists("did_idl_syntax_inits")223    let did_idl_syntax_inits = 1224    " The default methods for highlighting.  Can be overridden later225 226    hi def link idlInclude             Include227    hi def link idlPreProc             PreProc228    hi def link idlPreCondit           PreCondit229    hi def link idlDefine              Macro230    hi def link idlIncluded            String231    hi def link idlString              String232    hi def link idlComment             Comment233    hi def link idlTodo                Todo234    hi def link idlLiteral             Number235    hi def link idlUuid                Number236    hi def link idlType                Type237    hi def link idlVariantType         idlType238 239    hi def link idlModule              Keyword240    hi def link idlInterface           Keyword241    hi def link idlEnum                Keyword242    hi def link idlStruct              Keyword243    hi def link idlUnion               Keyword244    hi def link idlTypedef             Keyword245    hi def link idlException           Keyword246    hi def link idlTypedefOtherTypeQualifier keyword247 248    hi def link idlModuleName          Typedef249    hi def link idlInterfaceName       Typedef250    hi def link idlEnumName            Typedef251    hi def link idlStructName          Typedef252    hi def link idlUnionName           Typedef253 254    hi def link idlBaseTypeInt         idlType255    hi def link idlBaseType            idlType256    hi def link idlSeqType             idlType257    hi def link idlD1                  Paren258    hi def link idlD2                  Paren259    hi def link idlD3                  Paren260    hi def link idlD4                  Paren261    "hi def link idlArraySize          Paren262    "hi def link idlArraySize1         Paren263    hi def link idlModuleContent       Paren264    hi def link idlUnionContent        Paren265    hi def link idlStructContent       Paren266    hi def link idlEnumContents        Paren267    hi def link idlInterfaceContent    Paren268 269    hi def link idlSimpDecl            Identifier270    hi def link idlROAttr              StorageClass271    hi def link idlAttr                Keyword272    hi def link idlConst               StorageClass273 274    hi def link idlOneWayOp            StorageClass275    hi def link idlOp                  idlType276    hi def link idlParmType            idlType277    hi def link idlOpName              Function278    hi def link idlOpParms             SpecialComment279    hi def link idlParmName            Identifier280    hi def link idlInheritFrom         Identifier281    hi def link idlAttribute           SpecialComment282 283    hi def link idlId                  Constant284    "hi def link idlCase               Keyword285    hi def link idlCaseLabel           Constant286 287    hi def link idlErrorBracket        Error288    hi def link idlErrorBrace          Error289    hi def link idlErrorSquareBracket  Error290 291    hi def link idlImport              Keyword292    hi def link idlImportString        idlString293    hi def link idlCoclassAttribute    StorageClass294    hi def link idlLibrary             Keyword295    hi def link idlImportlib           Keyword296    hi def link idlCoclass             Keyword297    hi def link idlLibraryName         Typedef298    hi def link idlCoclassName         Typedef299    " hi def link idlLibraryContent guifg=red300    hi def link idlTypedefDecl         Typedef301    hi def link idlDefEnum             Keyword302    hi def link idlDefv1Enum           Keyword303    hi def link idlDefEnumName         Typedef304    hi def link idlDefEnumContents     Paren305    hi def link idlDefBaseTypeInt      idlType306    hi def link idlDefBaseType         idlType307    hi def link idlDefSeqType          idlType308    hi def link idlInterfaceSections   Label309 310    if exists("idlsyntax_showerror")311      if exists("idlsyntax_showerror_soft")312        hi default idlError guibg=#d0ffd0313      else314        hi def link idlError Error315      endif316    endif317  endif318 319  let b:current_syntax = "idl"320finally321  let &cpo = s:cpo_save322  unlet s:cpo_save323endtry324" vim: sw=2 et325 
codekingpro/portable-devtools · Team Ai