Update runtime files.
This commit is contained in:
@ -2,7 +2,7 @@
|
||||
" Language: IDL (Interface Description Language)
|
||||
" Created By: Jody Goldberg
|
||||
" Maintainer: Michael Geddes <vim@frog.wheelycreek.net>
|
||||
" Last Change: Thu Apr 13 2006
|
||||
" Last Change: 2012 Jan 11
|
||||
|
||||
|
||||
" This is an experiment. IDL's structure is simple enough to permit a full
|
||||
@ -17,303 +17,310 @@
|
||||
" History:
|
||||
" 2.0: Michael's new version
|
||||
" 2.1: Support for Vim 7 spell (Anduin Withers)
|
||||
"
|
||||
"
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
if exists("idlsyntax_showerror")
|
||||
syn match idlError +\S+ skipwhite skipempty nextgroup=idlError
|
||||
endif
|
||||
|
||||
syn region idlCppQuote start='\<cpp_quote\s*(' end=')' contains=idlString
|
||||
|
||||
" Misc basic
|
||||
syn match idlId contained "[a-zA-Z][a-zA-Z0-9_]*" skipwhite skipempty nextgroup=idlEnumComma,idlEnumNumber
|
||||
syn match idlEnumComma contained ","
|
||||
syn match idlEnumNumber contained "=" skipwhite skipempty nextgroup=idlString,idlLiteral
|
||||
syn match idlSemiColon contained ";"
|
||||
syn match idlCommaArg contained "," skipempty skipwhite nextgroup=idlSimpDecl
|
||||
syn region idlArraySize1 contained start=:\[: end=:\]: skipempty skipwhite nextgroup=idlArraySize1,idlError,idlSemiColon,idlCommaArg contains=idlArraySize1,idlLiteral
|
||||
syn match idlSimpDecl contained "[a-zA-Z][a-zA-Z0-9_]*" skipempty skipwhite nextgroup=idlError,idlSemiColon,idlCommaArg,idlArraySize1
|
||||
syn region idlString contained start=+"+ skip=+\\\(\\\\\)*"+ end=+"+ contains=@Spell
|
||||
syn match idlLiteral contained "[1-9]\d*\(\.\d*\)\="
|
||||
syn match idlLiteral contained "0"
|
||||
syn match idlLiteral contained "\.\d\+"
|
||||
syn match idlLiteral contained "0x[0-9A-Fa-f]\+"
|
||||
syn match idlLiteral contained "0[0-7]\+"
|
||||
syn keyword idlLiteral contained TRUE FALSE
|
||||
|
||||
" Comments
|
||||
syn keyword idlTodo contained TODO FIXME XXX
|
||||
syn region idlComment start="/\*" end="\*/" contains=idlTodo,@Spell
|
||||
syn match idlComment "//.*" contains=idlTodo,@Spell
|
||||
syn match idlCommentError "\*/"
|
||||
|
||||
" C style Preprocessor
|
||||
syn region idlIncluded contained start=+"+ skip=+\\\(\\\\\)*"+ end=+"+
|
||||
syn match idlIncluded contained "<[^>]*>"
|
||||
syn match idlInclude "^[ \t]*#[ \t]*include\>[ \t]*["<]" contains=idlIncluded,idlString
|
||||
syn region idlPreCondit start="^[ \t]*#[ \t]*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=idlComment,idlCommentError
|
||||
syn region idlDefine start="^[ \t]*#[ \t]*\(define\>\|undef\>\)" skip="\\$" end="$" contains=idlLiteral,idlString
|
||||
|
||||
" Constants
|
||||
syn keyword idlConst const skipempty skipwhite nextgroup=idlBaseType,idlBaseTypeInt
|
||||
|
||||
" Attribute
|
||||
syn keyword idlROAttr readonly skipempty skipwhite nextgroup=idlAttr
|
||||
syn keyword idlAttr attribute skipempty skipwhite nextgroup=idlBaseTypeInt,idlBaseType
|
||||
|
||||
" Types
|
||||
syn region idlD4 contained start="<" end=">" skipempty skipwhite nextgroup=idlSimpDecl contains=idlSeqType,idlBaseTypeInt,idlBaseType,idlLiteral
|
||||
syn keyword idlSeqType contained sequence skipempty skipwhite nextgroup=idlD4
|
||||
syn keyword idlBaseType contained float double char boolean octet any skipempty skipwhite nextgroup=idlSimpDecl
|
||||
syn keyword idlBaseTypeInt contained short long skipempty skipwhite nextgroup=idlSimpDecl
|
||||
syn keyword idlBaseType contained unsigned skipempty skipwhite nextgroup=idlBaseTypeInt
|
||||
syn region idlD1 contained start="<" end=">" skipempty skipwhite nextgroup=idlSimpDecl contains=idlString,idlLiteral
|
||||
syn keyword idlBaseType contained string skipempty skipwhite nextgroup=idlD1,idlSimpDecl
|
||||
syn match idlBaseType contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlSimpDecl
|
||||
|
||||
" Modules
|
||||
syn region idlModuleContent contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon contains=idlUnion,idlStruct,idlEnum,idlInterface,idlComment,idlTypedef,idlConst,idlException,idlModule
|
||||
syn match idlModuleName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlModuleContent,idlError,idlSemiColon
|
||||
syn keyword idlModule module skipempty skipwhite nextgroup=idlModuleName
|
||||
|
||||
" Interfaces
|
||||
syn cluster idlCommentable contains=idlComment
|
||||
syn cluster idlContentCluster contains=idlUnion,idlStruct,idlEnum,idlROAttr,idlAttr,idlOp,idlOneWayOp,idlException,idlConst,idlTypedef,idlAttributes,idlErrorSquareBracket,idlErrorBracket,idlInterfaceSections
|
||||
|
||||
syn region idlInterfaceContent contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon contains=@idlContentCluster,@idlCommentable
|
||||
syn match idlInheritFrom2 contained "," skipempty skipwhite nextgroup=idlInheritFrom
|
||||
syn match idlInheritFrom contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlInheritFrom2,idlInterfaceContent
|
||||
syn match idlInherit contained ":" skipempty skipwhite nextgroup=idlInheritFrom
|
||||
syn match idlInterfaceName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlInterfaceContent,idlInherit,idlError,idlSemiColon
|
||||
syn keyword idlInterface interface dispinterface skipempty skipwhite nextgroup=idlInterfaceName
|
||||
syn keyword idlInterfaceSections contained properties methods skipempty skipwhite nextgroup=idlSectionColon,idlError
|
||||
syn match idlSectionColon contained ":"
|
||||
|
||||
|
||||
syn match idlLibraryName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlLibraryContent,idlError,idlSemiColon
|
||||
syn keyword idlLibrary library skipempty skipwhite nextgroup=idlLibraryName
|
||||
syn region idlLibraryContent contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon contains=@idlCommentable,idlAttributes,idlErrorSquareBracket,idlErrorBracket,idlImportlib,idlCoclass,idlTypedef,idlInterface
|
||||
|
||||
syn keyword idlImportlib contained importlib skipempty skipwhite nextgroup=idlStringArg
|
||||
syn region idlStringArg contained start="(" end=")" contains=idlString nextgroup=idlError,idlSemiColon,idlErrorBrace,idlErrorSquareBracket
|
||||
|
||||
syn keyword idlCoclass coclass contained skipempty skipwhite nextgroup=idlCoclassName
|
||||
syn match idlCoclassName "[a-zA-Z0-9_]\+" contained skipempty skipwhite nextgroup=idlCoclassDefinition,idlError,idlSemiColon
|
||||
|
||||
syn region idlCoclassDefinition contained start="{" end="}" contains=idlCoclassAttributes,idlInterface,idlErrorBracket,idlErrorSquareBracket skipempty skipwhite nextgroup=idlError,idlSemiColon
|
||||
syn region idlCoclassAttributes contained start=+\[+ end=+]+ skipempty skipwhite nextgroup=idlInterface contains=idlErrorBracket,idlErrorBrace,idlCoclassAttribute
|
||||
syn keyword idlCoclassAttribute contained default source
|
||||
"syn keyword idlInterface interface skipempty skipwhite nextgroup=idlInterfaceStubName
|
||||
|
||||
syn match idlImportString +"\f\+"+ skipempty skipwhite nextgroup=idlError,idlSemiColon
|
||||
syn keyword idlImport import skipempty skipwhite nextgroup=idlImportString
|
||||
|
||||
syn region idlAttributes start="\[" end="\]" contains=idlAttribute,idlAttributeParam,idlErrorBracket,idlErrorBrace,idlComment
|
||||
syn keyword idlAttribute contained propput propget propputref id helpstring object uuid pointer_default
|
||||
if !exists('idl_no_ms_extensions')
|
||||
syn keyword idlAttribute contained nonextensible dual version aggregatable restricted hidden noncreatable oleautomation
|
||||
endif
|
||||
syn region idlAttributeParam contained start="(" end=")" contains=idlString,idlUuid,idlLiteral,idlErrorBrace,idlErrorSquareBracket
|
||||
" skipwhite nextgroup=idlArraySize,idlParmList contains=idlArraySize,idlLiteral
|
||||
syn match idlErrorBrace contained "}"
|
||||
syn match idlErrorBracket contained ")"
|
||||
syn match idlErrorSquareBracket contained "\]"
|
||||
|
||||
syn match idlUuid contained +[0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}+
|
||||
|
||||
" Raises
|
||||
syn keyword idlRaises contained raises skipempty skipwhite nextgroup=idlRaises,idlContext,idlError,idlSemiColon
|
||||
|
||||
" Context
|
||||
syn keyword idlContext contained context skipempty skipwhite nextgroup=idlRaises,idlContext,idlError,idlSemiColon
|
||||
|
||||
" Operation
|
||||
syn match idlParmList contained "," skipempty skipwhite nextgroup=idlOpParms
|
||||
syn region idlArraySize contained start="\[" end="\]" skipempty skipwhite nextgroup=idlArraySize,idlParmList contains=idlArraySize,idlLiteral
|
||||
syn match idlParmName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlParmList,idlArraySize
|
||||
syn keyword idlParmInt contained short long skipempty skipwhite nextgroup=idlParmName
|
||||
syn keyword idlParmType contained unsigned skipempty skipwhite nextgroup=idlParmInt
|
||||
syn region idlD3 contained start="<" end=">" skipempty skipwhite nextgroup=idlParmName contains=idlString,idlLiteral
|
||||
syn keyword idlParmType contained string skipempty skipwhite nextgroup=idlD3,idlParmName
|
||||
syn keyword idlParmType contained void float double char boolean octet any skipempty skipwhite nextgroup=idlParmName
|
||||
syn match idlParmType contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlParmName
|
||||
syn keyword idlOpParms contained in out inout skipempty skipwhite nextgroup=idlParmType
|
||||
|
||||
if !exists('idl_no_ms_extensions')
|
||||
syn keyword idlOpParms contained retval optional skipempty skipwhite nextgroup=idlParmType
|
||||
syn match idlOpParms contained +\<\(iid_is\|defaultvalue\)\s*([^)]*)+ skipempty skipwhite nextgroup=idlParamType
|
||||
|
||||
syn keyword idlVariantType contained BSTR VARIANT VARIANT_BOOL long short unsigned double CURRENCY DATE
|
||||
syn region idlSafeArray contained matchgroup=idlVariantType start=+SAFEARRAY(\s*+ end=+)+ contains=idlVariantType
|
||||
endif
|
||||
|
||||
syn region idlOpContents contained start="(" end=")" skipempty skipwhite nextgroup=idlRaises,idlContext,idlError,idlSemiColon contains=idlOpParms,idlSafeArray,idlVariantType,@idlCommentable
|
||||
syn match idlOpName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlOpContents
|
||||
syn keyword idlOpInt contained short long skipempty skipwhite nextgroup=idlOpName
|
||||
syn region idlD2 contained start="<" end=">" skipempty skipwhite nextgroup=idlOpName contains=idlString,idlLiteral
|
||||
syn keyword idlOp contained unsigned skipempty skipwhite nextgroup=idlOpInt
|
||||
syn keyword idlOp contained string skipempty skipwhite nextgroup=idlD2,idlOpName
|
||||
syn keyword idlOp contained void float double char boolean octet any skipempty skipwhite nextgroup=idlOpName
|
||||
syn match idlOp contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlOpName
|
||||
syn keyword idlOp contained void skipempty skipwhite nextgroup=idlOpName
|
||||
syn keyword idlOneWayOp contained oneway skipempty skipwhite nextgroup=idOp
|
||||
|
||||
" Enum
|
||||
syn region idlEnumContents contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon,idlSimpDecl contains=idlId,idlAttributes,@idlCommentable
|
||||
syn match idlEnumName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlEnumContents
|
||||
syn keyword idlEnum enum skipempty skipwhite nextgroup=idlEnumName,idlEnumContents
|
||||
|
||||
" Typedef
|
||||
syn keyword idlTypedef typedef skipempty skipwhite nextgroup=idlTypedefOtherTypeQualifier,idlDefBaseType,idlDefBaseTypeInt,idlDefSeqType,idlDefv1Enum,idlDefEnum,idlDefOtherType,idlDefAttributes,idlError
|
||||
|
||||
if !exists('idl_no_extensions')
|
||||
syn keyword idlTypedefOtherTypeQualifier contained struct enum interface nextgroup=idlDefBaseType,idlDefBaseTypeInt,idlDefSeqType,idlDefv1Enum,idlDefEnum,idlDefOtherType,idlDefAttributes,idlError skipwhite
|
||||
|
||||
syn region idlDefAttributes contained start="\[" end="\]" contains=idlAttribute,idlAttributeParam,idlErrorBracket,idlErrorBrace skipempty skipwhite nextgroup=idlDefBaseType,idlDefBaseTypeInt,idlDefSeqType,idlDefv1Enum,idlDefEnum,idlDefOtherType,idlError
|
||||
|
||||
syn keyword idlDefBaseType contained float double char boolean octet any skipempty skipwhite nextgroup=idlTypedefDecl,idlError
|
||||
syn keyword idlDefBaseTypeInt contained short long skipempty skipwhite nextgroup=idlTypedefDecl,idlError
|
||||
syn match idlDefOtherType contained +\<\k\+\>+ skipempty nextgroup=idlTypedefDecl,idlError
|
||||
" syn keyword idlDefSeqType contained sequence skipempty skipwhite nextgroup=idlD4
|
||||
|
||||
" Enum typedef
|
||||
syn keyword idlDefEnum contained enum skipempty skipwhite nextgroup=idlDefEnumName,idlDefEnumContents
|
||||
syn match idlDefEnumName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlDefEnumContents,idlTypedefDecl
|
||||
syn region idlDefEnumContents contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlTypedefDecl contains=idlId,idlAttributes
|
||||
|
||||
syn match idlTypedefDecl contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlError,idlSemiColon
|
||||
endif
|
||||
|
||||
" Struct
|
||||
syn region idlStructContent contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon,idlSimpDecl contains=idlBaseType,idlBaseTypeInt,idlSeqType,@idlCommentable,idlEnum,idlUnion
|
||||
syn match idlStructName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlStructContent
|
||||
syn keyword idlStruct struct skipempty skipwhite nextgroup=idlStructName
|
||||
|
||||
" Exception
|
||||
syn keyword idlException exception skipempty skipwhite nextgroup=idlStructName
|
||||
|
||||
" Union
|
||||
syn match idlColon contained ":" skipempty skipwhite nextgroup=idlCase,idlSeqType,idlBaseType,idlBaseTypeInt
|
||||
syn region idlCaseLabel contained start="" skip="::" end=":"me=e-1 skipempty skipwhite nextgroup=idlColon contains=idlLiteral,idlString
|
||||
syn keyword idlCase contained case skipempty skipwhite nextgroup=idlCaseLabel
|
||||
syn keyword idlCase contained default skipempty skipwhite nextgroup=idlColon
|
||||
syn region idlUnionContent contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon,idlSimpDecl contains=idlCase
|
||||
syn region idlSwitchType contained start="(" end=")" skipempty skipwhite nextgroup=idlUnionContent
|
||||
syn keyword idlUnionSwitch contained switch skipempty skipwhite nextgroup=idlSwitchType
|
||||
syn match idlUnionName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlUnionSwitch
|
||||
syn keyword idlUnion union skipempty skipwhite nextgroup=idlUnionName
|
||||
|
||||
if !exists('idl_no_extensions')
|
||||
syn sync match idlInterfaceSync grouphere idlInterfaceContent "\<\(disp\)\=interface\>\s\+\k\+\s*:\s*\k\+\_s*{" skipempty skipwhite nextgroup=idlError,idlSemiColon contains=@idlContentCluster,@idlCommentable
|
||||
syn sync maxlines=1000 minlines=100
|
||||
else
|
||||
syn sync lines=200
|
||||
endif
|
||||
" syn sync fromstart
|
||||
|
||||
if !exists("did_idl_syntax_inits")
|
||||
let did_idl_syntax_inits = 1
|
||||
" The default methods for highlighting. Can be overridden later
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
|
||||
HiLink idlInclude Include
|
||||
HiLink idlPreProc PreProc
|
||||
HiLink idlPreCondit PreCondit
|
||||
HiLink idlDefine Macro
|
||||
HiLink idlIncluded String
|
||||
HiLink idlString String
|
||||
HiLink idlComment Comment
|
||||
HiLink idlTodo Todo
|
||||
HiLink idlLiteral Number
|
||||
HiLink idlUuid Number
|
||||
HiLink idlType Type
|
||||
HiLink idlVariantType idlType
|
||||
|
||||
HiLink idlModule Keyword
|
||||
HiLink idlInterface Keyword
|
||||
HiLink idlEnum Keyword
|
||||
HiLink idlStruct Keyword
|
||||
HiLink idlUnion Keyword
|
||||
HiLink idlTypedef Keyword
|
||||
HiLink idlException Keyword
|
||||
HiLink idlTypedefOtherTypeQualifier keyword
|
||||
|
||||
HiLink idlModuleName Typedef
|
||||
HiLink idlInterfaceName Typedef
|
||||
HiLink idlEnumName Typedef
|
||||
HiLink idlStructName Typedef
|
||||
HiLink idlUnionName Typedef
|
||||
|
||||
HiLink idlBaseTypeInt idlType
|
||||
HiLink idlBaseType idlType
|
||||
HiLink idlSeqType idlType
|
||||
HiLink idlD1 Paren
|
||||
HiLink idlD2 Paren
|
||||
HiLink idlD3 Paren
|
||||
HiLink idlD4 Paren
|
||||
"HiLink idlArraySize Paren
|
||||
"HiLink idlArraySize1 Paren
|
||||
HiLink idlModuleContent Paren
|
||||
HiLink idlUnionContent Paren
|
||||
HiLink idlStructContent Paren
|
||||
HiLink idlEnumContents Paren
|
||||
HiLink idlInterfaceContent Paren
|
||||
|
||||
HiLink idlSimpDecl Identifier
|
||||
HiLink idlROAttr StorageClass
|
||||
HiLink idlAttr Keyword
|
||||
HiLink idlConst StorageClass
|
||||
|
||||
HiLink idlOneWayOp StorageClass
|
||||
HiLink idlOp idlType
|
||||
HiLink idlParmType idlType
|
||||
HiLink idlOpName Function
|
||||
HiLink idlOpParms SpecialComment
|
||||
HiLink idlParmName Identifier
|
||||
HiLink idlInheritFrom Identifier
|
||||
HiLink idlAttribute SpecialComment
|
||||
|
||||
HiLink idlId Constant
|
||||
"HiLink idlCase Keyword
|
||||
HiLink idlCaseLabel Constant
|
||||
|
||||
HiLink idlErrorBracket Error
|
||||
HiLink idlErrorBrace Error
|
||||
HiLink idlErrorSquareBracket Error
|
||||
|
||||
HiLink idlImport Keyword
|
||||
HiLink idlImportString idlString
|
||||
HiLink idlCoclassAttribute StorageClass
|
||||
HiLink idlLibrary Keyword
|
||||
HiLink idlImportlib Keyword
|
||||
HiLink idlCoclass Keyword
|
||||
HiLink idlLibraryName Typedef
|
||||
HiLink idlCoclassName Typedef
|
||||
" hi idlLibraryContent guifg=red
|
||||
HiLink idlTypedefDecl Typedef
|
||||
HiLink idlDefEnum Keyword
|
||||
HiLink idlDefv1Enum Keyword
|
||||
HiLink idlDefEnumName Typedef
|
||||
HiLink idlDefEnumContents Paren
|
||||
HiLink idlDefBaseTypeInt idlType
|
||||
HiLink idlDefBaseType idlType
|
||||
HiLink idlDefSeqType idlType
|
||||
HiLink idlInterfaceSections Label
|
||||
let s:cpo_save = &cpo
|
||||
try
|
||||
set cpo&vim
|
||||
|
||||
if exists("idlsyntax_showerror")
|
||||
if exists("idlsyntax_showerror_soft")
|
||||
hi default idlError guibg=#d0ffd0
|
||||
else
|
||||
HiLink idlError Error
|
||||
endif
|
||||
syn match idlError +\S+ skipwhite skipempty nextgroup=idlError
|
||||
endif
|
||||
delcommand HiLink
|
||||
endif
|
||||
|
||||
let b:current_syntax = "idl"
|
||||
syn region idlCppQuote start='\<cpp_quote\s*(' end=')' contains=idlString
|
||||
|
||||
" Misc basic
|
||||
syn match idlId contained "[a-zA-Z][a-zA-Z0-9_]*" skipwhite skipempty nextgroup=idlEnumComma,idlEnumNumber
|
||||
syn match idlEnumComma contained ","
|
||||
syn match idlEnumNumber contained "=" skipwhite skipempty nextgroup=idlString,idlLiteral
|
||||
syn match idlSemiColon contained ";"
|
||||
syn match idlCommaArg contained "," skipempty skipwhite nextgroup=idlSimpDecl
|
||||
syn region idlArraySize1 contained start=:\[: end=:\]: skipempty skipwhite nextgroup=idlArraySize1,idlError,idlSemiColon,idlCommaArg contains=idlArraySize1,idlLiteral
|
||||
syn match idlSimpDecl contained "[a-zA-Z][a-zA-Z0-9_]*" skipempty skipwhite nextgroup=idlError,idlSemiColon,idlCommaArg,idlArraySize1
|
||||
syn region idlString contained start=+"+ skip=+\\\(\\\\\)*"+ end=+"+ contains=@Spell
|
||||
syn match idlLiteral contained "[1-9]\d*\(\.\d*\)\="
|
||||
syn match idlLiteral contained "0"
|
||||
syn match idlLiteral contained "\.\d\+"
|
||||
syn match idlLiteral contained "0x[0-9A-Fa-f]\+"
|
||||
syn match idlLiteral contained "0[0-7]\+"
|
||||
syn keyword idlLiteral contained TRUE FALSE
|
||||
|
||||
" Comments
|
||||
syn keyword idlTodo contained TODO FIXME XXX
|
||||
syn region idlComment start="/\*" end="\*/" contains=idlTodo,@Spell
|
||||
syn match idlComment "//.*" contains=idlTodo,@Spell
|
||||
syn match idlCommentError "\*/"
|
||||
|
||||
" C style Preprocessor
|
||||
syn region idlIncluded contained start=+"+ skip=+\\\(\\\\\)*"+ end=+"+
|
||||
syn match idlIncluded contained "<[^>]*>"
|
||||
syn match idlInclude "^[ \t]*#[ \t]*include\>[ \t]*["<]" contains=idlIncluded,idlString
|
||||
syn region idlPreCondit start="^[ \t]*#[ \t]*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=idlComment,idlCommentError
|
||||
syn region idlDefine start="^[ \t]*#[ \t]*\(define\>\|undef\>\)" skip="\\$" end="$" contains=idlLiteral,idlString
|
||||
|
||||
" Constants
|
||||
syn keyword idlConst const skipempty skipwhite nextgroup=idlBaseType,idlBaseTypeInt
|
||||
|
||||
" Attribute
|
||||
syn keyword idlROAttr readonly skipempty skipwhite nextgroup=idlAttr
|
||||
syn keyword idlAttr attribute skipempty skipwhite nextgroup=idlBaseTypeInt,idlBaseType
|
||||
|
||||
" Types
|
||||
syn region idlD4 contained start="<" end=">" skipempty skipwhite nextgroup=idlSimpDecl contains=idlSeqType,idlBaseTypeInt,idlBaseType,idlLiteral
|
||||
syn keyword idlSeqType contained sequence skipempty skipwhite nextgroup=idlD4
|
||||
syn keyword idlBaseType contained float double char boolean octet any skipempty skipwhite nextgroup=idlSimpDecl
|
||||
syn keyword idlBaseTypeInt contained short long skipempty skipwhite nextgroup=idlSimpDecl
|
||||
syn keyword idlBaseType contained unsigned skipempty skipwhite nextgroup=idlBaseTypeInt
|
||||
syn region idlD1 contained start="<" end=">" skipempty skipwhite nextgroup=idlSimpDecl contains=idlString,idlLiteral
|
||||
syn keyword idlBaseType contained string skipempty skipwhite nextgroup=idlD1,idlSimpDecl
|
||||
syn match idlBaseType contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlSimpDecl
|
||||
|
||||
" Modules
|
||||
syn region idlModuleContent contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon contains=idlUnion,idlStruct,idlEnum,idlInterface,idlComment,idlTypedef,idlConst,idlException,idlModule
|
||||
syn match idlModuleName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlModuleContent,idlError,idlSemiColon
|
||||
syn keyword idlModule module skipempty skipwhite nextgroup=idlModuleName
|
||||
|
||||
" Interfaces
|
||||
syn cluster idlCommentable contains=idlComment
|
||||
syn cluster idlContentCluster contains=idlUnion,idlStruct,idlEnum,idlROAttr,idlAttr,idlOp,idlOneWayOp,idlException,idlConst,idlTypedef,idlAttributes,idlErrorSquareBracket,idlErrorBracket,idlInterfaceSections
|
||||
|
||||
syn region idlInterfaceContent contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon contains=@idlContentCluster,@idlCommentable
|
||||
syn match idlInheritFrom2 contained "," skipempty skipwhite nextgroup=idlInheritFrom
|
||||
syn match idlInheritFrom contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlInheritFrom2,idlInterfaceContent
|
||||
syn match idlInherit contained ":" skipempty skipwhite nextgroup=idlInheritFrom
|
||||
syn match idlInterfaceName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlInterfaceContent,idlInherit,idlError,idlSemiColon
|
||||
syn keyword idlInterface interface dispinterface skipempty skipwhite nextgroup=idlInterfaceName
|
||||
syn keyword idlInterfaceSections contained properties methods skipempty skipwhite nextgroup=idlSectionColon,idlError
|
||||
syn match idlSectionColon contained ":"
|
||||
|
||||
|
||||
syn match idlLibraryName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlLibraryContent,idlError,idlSemiColon
|
||||
syn keyword idlLibrary library skipempty skipwhite nextgroup=idlLibraryName
|
||||
syn region idlLibraryContent contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon contains=@idlCommentable,idlAttributes,idlErrorSquareBracket,idlErrorBracket,idlImportlib,idlCoclass,idlTypedef,idlInterface
|
||||
|
||||
syn keyword idlImportlib contained importlib skipempty skipwhite nextgroup=idlStringArg
|
||||
syn region idlStringArg contained start="(" end=")" contains=idlString nextgroup=idlError,idlSemiColon,idlErrorBrace,idlErrorSquareBracket
|
||||
|
||||
syn keyword idlCoclass coclass contained skipempty skipwhite nextgroup=idlCoclassName
|
||||
syn match idlCoclassName "[a-zA-Z0-9_]\+" contained skipempty skipwhite nextgroup=idlCoclassDefinition,idlError,idlSemiColon
|
||||
|
||||
syn region idlCoclassDefinition contained start="{" end="}" contains=idlCoclassAttributes,idlInterface,idlErrorBracket,idlErrorSquareBracket skipempty skipwhite nextgroup=idlError,idlSemiColon
|
||||
syn region idlCoclassAttributes contained start=+\[+ end=+]+ skipempty skipwhite nextgroup=idlInterface contains=idlErrorBracket,idlErrorBrace,idlCoclassAttribute
|
||||
syn keyword idlCoclassAttribute contained default source
|
||||
"syn keyword idlInterface interface skipempty skipwhite nextgroup=idlInterfaceStubName
|
||||
|
||||
syn match idlImportString +"\f\+"+ skipempty skipwhite nextgroup=idlError,idlSemiColon
|
||||
syn keyword idlImport import skipempty skipwhite nextgroup=idlImportString
|
||||
|
||||
syn region idlAttributes start="\[" end="\]" contains=idlAttribute,idlAttributeParam,idlErrorBracket,idlErrorBrace,idlComment
|
||||
syn keyword idlAttribute contained propput propget propputref id helpstring object uuid pointer_default
|
||||
if !exists('idl_no_ms_extensions')
|
||||
syn keyword idlAttribute contained nonextensible dual version aggregatable restricted hidden noncreatable oleautomation
|
||||
endif
|
||||
syn region idlAttributeParam contained start="(" end=")" contains=idlString,idlUuid,idlLiteral,idlErrorBrace,idlErrorSquareBracket
|
||||
" skipwhite nextgroup=idlArraySize,idlParmList contains=idlArraySize,idlLiteral
|
||||
syn match idlErrorBrace contained "}"
|
||||
syn match idlErrorBracket contained ")"
|
||||
syn match idlErrorSquareBracket contained "\]"
|
||||
|
||||
syn match idlUuid contained +[0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}+
|
||||
|
||||
" Raises
|
||||
syn keyword idlRaises contained raises skipempty skipwhite nextgroup=idlRaises,idlContext,idlError,idlSemiColon
|
||||
|
||||
" Context
|
||||
syn keyword idlContext contained context skipempty skipwhite nextgroup=idlRaises,idlContext,idlError,idlSemiColon
|
||||
|
||||
" Operation
|
||||
syn match idlParmList contained "," skipempty skipwhite nextgroup=idlOpParms
|
||||
syn region idlArraySize contained start="\[" end="\]" skipempty skipwhite nextgroup=idlArraySize,idlParmList contains=idlArraySize,idlLiteral
|
||||
syn match idlParmName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlParmList,idlArraySize
|
||||
syn keyword idlParmInt contained short long skipempty skipwhite nextgroup=idlParmName
|
||||
syn keyword idlParmType contained unsigned skipempty skipwhite nextgroup=idlParmInt
|
||||
syn region idlD3 contained start="<" end=">" skipempty skipwhite nextgroup=idlParmName contains=idlString,idlLiteral
|
||||
syn keyword idlParmType contained string skipempty skipwhite nextgroup=idlD3,idlParmName
|
||||
syn keyword idlParmType contained void float double char boolean octet any skipempty skipwhite nextgroup=idlParmName
|
||||
syn match idlParmType contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlParmName
|
||||
syn keyword idlOpParms contained in out inout skipempty skipwhite nextgroup=idlParmType
|
||||
|
||||
if !exists('idl_no_ms_extensions')
|
||||
syn keyword idlOpParms contained retval optional skipempty skipwhite nextgroup=idlParmType
|
||||
syn match idlOpParms contained +\<\(iid_is\|defaultvalue\)\s*([^)]*)+ skipempty skipwhite nextgroup=idlParamType
|
||||
|
||||
syn keyword idlVariantType contained BSTR VARIANT VARIANT_BOOL long short unsigned double CURRENCY DATE
|
||||
syn region idlSafeArray contained matchgroup=idlVariantType start=+SAFEARRAY(\s*+ end=+)+ contains=idlVariantType
|
||||
endif
|
||||
|
||||
syn region idlOpContents contained start="(" end=")" skipempty skipwhite nextgroup=idlRaises,idlContext,idlError,idlSemiColon contains=idlOpParms,idlSafeArray,idlVariantType,@idlCommentable
|
||||
syn match idlOpName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlOpContents
|
||||
syn keyword idlOpInt contained short long skipempty skipwhite nextgroup=idlOpName
|
||||
syn region idlD2 contained start="<" end=">" skipempty skipwhite nextgroup=idlOpName contains=idlString,idlLiteral
|
||||
syn keyword idlOp contained unsigned skipempty skipwhite nextgroup=idlOpInt
|
||||
syn keyword idlOp contained string skipempty skipwhite nextgroup=idlD2,idlOpName
|
||||
syn keyword idlOp contained void float double char boolean octet any skipempty skipwhite nextgroup=idlOpName
|
||||
syn match idlOp contained "[a-zA-Z0-9_]\+[ \t]*\(::[ \t]*[a-zA-Z0-9_]\+\)*" skipempty skipwhite nextgroup=idlOpName
|
||||
syn keyword idlOp contained void skipempty skipwhite nextgroup=idlOpName
|
||||
syn keyword idlOneWayOp contained oneway skipempty skipwhite nextgroup=idOp
|
||||
|
||||
" Enum
|
||||
syn region idlEnumContents contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon,idlSimpDecl contains=idlId,idlAttributes,@idlCommentable
|
||||
syn match idlEnumName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlEnumContents
|
||||
syn keyword idlEnum enum skipempty skipwhite nextgroup=idlEnumName,idlEnumContents
|
||||
|
||||
" Typedef
|
||||
syn keyword idlTypedef typedef skipempty skipwhite nextgroup=idlTypedefOtherTypeQualifier,idlDefBaseType,idlDefBaseTypeInt,idlDefSeqType,idlDefv1Enum,idlDefEnum,idlDefOtherType,idlDefAttributes,idlError
|
||||
|
||||
if !exists('idl_no_extensions')
|
||||
syn keyword idlTypedefOtherTypeQualifier contained struct enum interface nextgroup=idlDefBaseType,idlDefBaseTypeInt,idlDefSeqType,idlDefv1Enum,idlDefEnum,idlDefOtherType,idlDefAttributes,idlError skipwhite
|
||||
|
||||
syn region idlDefAttributes contained start="\[" end="\]" contains=idlAttribute,idlAttributeParam,idlErrorBracket,idlErrorBrace skipempty skipwhite nextgroup=idlDefBaseType,idlDefBaseTypeInt,idlDefSeqType,idlDefv1Enum,idlDefEnum,idlDefOtherType,idlError
|
||||
|
||||
syn keyword idlDefBaseType contained float double char boolean octet any skipempty skipwhite nextgroup=idlTypedefDecl,idlError
|
||||
syn keyword idlDefBaseTypeInt contained short long skipempty skipwhite nextgroup=idlTypedefDecl,idlError
|
||||
syn match idlDefOtherType contained +\<\k\+\>+ skipempty nextgroup=idlTypedefDecl,idlError
|
||||
" syn keyword idlDefSeqType contained sequence skipempty skipwhite nextgroup=idlD4
|
||||
|
||||
" Enum typedef
|
||||
syn keyword idlDefEnum contained enum skipempty skipwhite nextgroup=idlDefEnumName,idlDefEnumContents
|
||||
syn match idlDefEnumName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlDefEnumContents,idlTypedefDecl
|
||||
syn region idlDefEnumContents contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlTypedefDecl contains=idlId,idlAttributes
|
||||
|
||||
syn match idlTypedefDecl contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlError,idlSemiColon
|
||||
endif
|
||||
|
||||
" Struct
|
||||
syn region idlStructContent contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon,idlSimpDecl contains=idlBaseType,idlBaseTypeInt,idlSeqType,@idlCommentable,idlEnum,idlUnion
|
||||
syn match idlStructName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlStructContent
|
||||
syn keyword idlStruct struct skipempty skipwhite nextgroup=idlStructName
|
||||
|
||||
" Exception
|
||||
syn keyword idlException exception skipempty skipwhite nextgroup=idlStructName
|
||||
|
||||
" Union
|
||||
syn match idlColon contained ":" skipempty skipwhite nextgroup=idlCase,idlSeqType,idlBaseType,idlBaseTypeInt
|
||||
syn region idlCaseLabel contained start="" skip="::" end=":"me=e-1 skipempty skipwhite nextgroup=idlColon contains=idlLiteral,idlString
|
||||
syn keyword idlCase contained case skipempty skipwhite nextgroup=idlCaseLabel
|
||||
syn keyword idlCase contained default skipempty skipwhite nextgroup=idlColon
|
||||
syn region idlUnionContent contained start="{" end="}" skipempty skipwhite nextgroup=idlError,idlSemiColon,idlSimpDecl contains=idlCase
|
||||
syn region idlSwitchType contained start="(" end=")" skipempty skipwhite nextgroup=idlUnionContent
|
||||
syn keyword idlUnionSwitch contained switch skipempty skipwhite nextgroup=idlSwitchType
|
||||
syn match idlUnionName contained "[a-zA-Z0-9_]\+" skipempty skipwhite nextgroup=idlUnionSwitch
|
||||
syn keyword idlUnion union skipempty skipwhite nextgroup=idlUnionName
|
||||
|
||||
if !exists('idl_no_extensions')
|
||||
syn sync match idlInterfaceSync grouphere idlInterfaceContent "\<\(disp\)\=interface\>\s\+\k\+\s*:\s*\k\+\_s*{" skipempty skipwhite nextgroup=idlError,idlSemiColon contains=@idlContentCluster,@idlCommentable
|
||||
syn sync maxlines=1000 minlines=100
|
||||
else
|
||||
syn sync lines=200
|
||||
endif
|
||||
" syn sync fromstart
|
||||
|
||||
if !exists("did_idl_syntax_inits")
|
||||
let did_idl_syntax_inits = 1
|
||||
" The default methods for highlighting. Can be overridden later
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
|
||||
HiLink idlInclude Include
|
||||
HiLink idlPreProc PreProc
|
||||
HiLink idlPreCondit PreCondit
|
||||
HiLink idlDefine Macro
|
||||
HiLink idlIncluded String
|
||||
HiLink idlString String
|
||||
HiLink idlComment Comment
|
||||
HiLink idlTodo Todo
|
||||
HiLink idlLiteral Number
|
||||
HiLink idlUuid Number
|
||||
HiLink idlType Type
|
||||
HiLink idlVariantType idlType
|
||||
|
||||
HiLink idlModule Keyword
|
||||
HiLink idlInterface Keyword
|
||||
HiLink idlEnum Keyword
|
||||
HiLink idlStruct Keyword
|
||||
HiLink idlUnion Keyword
|
||||
HiLink idlTypedef Keyword
|
||||
HiLink idlException Keyword
|
||||
HiLink idlTypedefOtherTypeQualifier keyword
|
||||
|
||||
HiLink idlModuleName Typedef
|
||||
HiLink idlInterfaceName Typedef
|
||||
HiLink idlEnumName Typedef
|
||||
HiLink idlStructName Typedef
|
||||
HiLink idlUnionName Typedef
|
||||
|
||||
HiLink idlBaseTypeInt idlType
|
||||
HiLink idlBaseType idlType
|
||||
HiLink idlSeqType idlType
|
||||
HiLink idlD1 Paren
|
||||
HiLink idlD2 Paren
|
||||
HiLink idlD3 Paren
|
||||
HiLink idlD4 Paren
|
||||
"HiLink idlArraySize Paren
|
||||
"HiLink idlArraySize1 Paren
|
||||
HiLink idlModuleContent Paren
|
||||
HiLink idlUnionContent Paren
|
||||
HiLink idlStructContent Paren
|
||||
HiLink idlEnumContents Paren
|
||||
HiLink idlInterfaceContent Paren
|
||||
|
||||
HiLink idlSimpDecl Identifier
|
||||
HiLink idlROAttr StorageClass
|
||||
HiLink idlAttr Keyword
|
||||
HiLink idlConst StorageClass
|
||||
|
||||
HiLink idlOneWayOp StorageClass
|
||||
HiLink idlOp idlType
|
||||
HiLink idlParmType idlType
|
||||
HiLink idlOpName Function
|
||||
HiLink idlOpParms SpecialComment
|
||||
HiLink idlParmName Identifier
|
||||
HiLink idlInheritFrom Identifier
|
||||
HiLink idlAttribute SpecialComment
|
||||
|
||||
HiLink idlId Constant
|
||||
"HiLink idlCase Keyword
|
||||
HiLink idlCaseLabel Constant
|
||||
|
||||
HiLink idlErrorBracket Error
|
||||
HiLink idlErrorBrace Error
|
||||
HiLink idlErrorSquareBracket Error
|
||||
|
||||
HiLink idlImport Keyword
|
||||
HiLink idlImportString idlString
|
||||
HiLink idlCoclassAttribute StorageClass
|
||||
HiLink idlLibrary Keyword
|
||||
HiLink idlImportlib Keyword
|
||||
HiLink idlCoclass Keyword
|
||||
HiLink idlLibraryName Typedef
|
||||
HiLink idlCoclassName Typedef
|
||||
" hi idlLibraryContent guifg=red
|
||||
HiLink idlTypedefDecl Typedef
|
||||
HiLink idlDefEnum Keyword
|
||||
HiLink idlDefv1Enum Keyword
|
||||
HiLink idlDefEnumName Typedef
|
||||
HiLink idlDefEnumContents Paren
|
||||
HiLink idlDefBaseTypeInt idlType
|
||||
HiLink idlDefBaseType idlType
|
||||
HiLink idlDefSeqType idlType
|
||||
HiLink idlInterfaceSections Label
|
||||
|
||||
if exists("idlsyntax_showerror")
|
||||
if exists("idlsyntax_showerror_soft")
|
||||
hi default idlError guibg=#d0ffd0
|
||||
else
|
||||
HiLink idlError Error
|
||||
endif
|
||||
endif
|
||||
delcommand HiLink
|
||||
endif
|
||||
|
||||
let b:current_syntax = "idl"
|
||||
finally
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
endtry
|
||||
" vim: sw=2 et
|
||||
|
||||
Reference in New Issue
Block a user