xref: /vim-8.2.3635/runtime/syntax/msidl.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:     MS IDL (Microsoft dialect of Interface Description Language)
3071d4279SBram Moolenaar" Maintainer:   Vadim Zeitlin <[email protected]>
45dc6252dSBram Moolenaar" Last Change:  2012 Feb 12 by Thilo Six
5071d4279SBram Moolenaar
689bcfda6SBram Moolenaar" quit when a syntax file was already loaded
789bcfda6SBram Moolenaarif exists("b:current_syntax")
8071d4279SBram Moolenaar  finish
9071d4279SBram Moolenaarendif
10071d4279SBram Moolenaar
115dc6252dSBram Moolenaarlet s:cpo_save = &cpo
125dc6252dSBram Moolenaarset cpo&vim
135dc6252dSBram Moolenaar
14071d4279SBram Moolenaar" Misc basic
15071d4279SBram Moolenaarsyn match   msidlId		"[a-zA-Z][a-zA-Z0-9_]*"
16071d4279SBram Moolenaarsyn match   msidlUUID		"{\?[[:xdigit:]]\{8}-\([[:xdigit:]]\{4}-\)\{3}[[:xdigit:]]\{12}}\?"
17071d4279SBram Moolenaarsyn region  msidlString		start=/"/  skip=/\\\(\\\\\)*"/	end=/"/
18071d4279SBram Moolenaarsyn match   msidlLiteral	"\d\+\(\.\d*\)\="
19071d4279SBram Moolenaarsyn match   msidlLiteral	"\.\d\+"
20071d4279SBram Moolenaarsyn match   msidlSpecial	contained "[]\[{}:]"
21071d4279SBram Moolenaar
22071d4279SBram Moolenaar" Comments
23071d4279SBram Moolenaarsyn keyword msidlTodo		contained TODO FIXME XXX
24071d4279SBram Moolenaarsyn region  msidlComment	start="/\*"  end="\*/" contains=msidlTodo
25071d4279SBram Moolenaarsyn match   msidlComment	"//.*" contains=msidlTodo
26071d4279SBram Moolenaarsyn match   msidlCommentError	"\*/"
27071d4279SBram Moolenaar
28071d4279SBram Moolenaar" C style Preprocessor
29071d4279SBram Moolenaarsyn region  msidlIncluded	contained start=+"+  skip=+\\\(\\\\\)*"+  end=+"+
30071d4279SBram Moolenaarsyn match   msidlIncluded	contained "<[^>]*>"
31071d4279SBram Moolenaarsyn match   msidlInclude	"^[ \t]*#[ \t]*include\>[ \t]*["<]" contains=msidlIncluded,msidlString
32071d4279SBram Moolenaarsyn region  msidlPreCondit	start="^[ \t]*#[ \t]*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)"  skip="\\$"	end="$" contains=msidlComment,msidlCommentError
33071d4279SBram Moolenaarsyn region  msidlDefine		start="^[ \t]*#[ \t]*\(define\>\|undef\>\)" skip="\\$" end="$" contains=msidlLiteral, msidlString
34071d4279SBram Moolenaar
35071d4279SBram Moolenaar" Attributes
36071d4279SBram Moolenaarsyn keyword msidlAttribute      contained in out propget propput propputref retval
37071d4279SBram Moolenaarsyn keyword msidlAttribute      contained aggregatable appobject binadable coclass control custom default defaultbind defaultcollelem defaultvalue defaultvtable dispinterface displaybind dual entry helpcontext helpfile helpstring helpstringdll hidden id immediatebind lcid library licensed nonbrowsable noncreatable nonextensible oleautomation optional object public readonly requestedit restricted source string uidefault usesgetlasterror vararg version
38071d4279SBram Moolenaarsyn match   msidlAttribute      /uuid(.*)/he=s+4 contains=msidlUUID
39071d4279SBram Moolenaarsyn match   msidlAttribute      /helpstring(.*)/he=s+10 contains=msidlString
40071d4279SBram Moolenaarsyn region  msidlAttributes     start="\[" end="]" keepend contains=msidlSpecial,msidlString,msidlAttribute,msidlComment,msidlCommentError
41071d4279SBram Moolenaar
42071d4279SBram Moolenaar" Keywords
43071d4279SBram Moolenaarsyn keyword msidlEnum		enum
44071d4279SBram Moolenaarsyn keyword msidlImport		import importlib
45071d4279SBram Moolenaarsyn keyword msidlStruct		interface library coclass
46071d4279SBram Moolenaarsyn keyword msidlTypedef	typedef
47071d4279SBram Moolenaar
48071d4279SBram Moolenaar" Types
49071d4279SBram Moolenaarsyn keyword msidlStandardType   byte char double float hyper int long short void wchar_t
50071d4279SBram Moolenaarsyn keyword msidlStandardType   BOOL BSTR HRESULT VARIANT VARIANT_BOOL
51071d4279SBram Moolenaarsyn region  msidlSafeArray      start="SAFEARRAY(" end=")" contains=msidlStandardType
52071d4279SBram Moolenaar
53071d4279SBram Moolenaarsyn sync lines=50
54071d4279SBram Moolenaar
55071d4279SBram Moolenaar" Define the default highlighting.
5689bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
57071d4279SBram Moolenaar
58*f37506f6SBram Moolenaarhi def link msidlInclude		Include
59*f37506f6SBram Moolenaarhi def link msidlPreProc		PreProc
60*f37506f6SBram Moolenaarhi def link msidlPreCondit		PreCondit
61*f37506f6SBram Moolenaarhi def link msidlDefine		Macro
62*f37506f6SBram Moolenaarhi def link msidlIncluded		String
63*f37506f6SBram Moolenaarhi def link msidlString		String
64*f37506f6SBram Moolenaarhi def link msidlComment		Comment
65*f37506f6SBram Moolenaarhi def link msidlTodo		Todo
66*f37506f6SBram Moolenaarhi def link msidlSpecial		SpecialChar
67*f37506f6SBram Moolenaarhi def link msidlLiteral		Number
68*f37506f6SBram Moolenaarhi def link msidlUUID		Number
69071d4279SBram Moolenaar
70*f37506f6SBram Moolenaarhi def link msidlImport		Include
71*f37506f6SBram Moolenaarhi def link msidlEnum		StorageClass
72*f37506f6SBram Moolenaarhi def link msidlStruct		Structure
73*f37506f6SBram Moolenaarhi def link msidlTypedef		Typedef
74*f37506f6SBram Moolenaarhi def link msidlAttribute		StorageClass
75071d4279SBram Moolenaar
76*f37506f6SBram Moolenaarhi def link msidlStandardType	Type
77*f37506f6SBram Moolenaarhi def link msidlSafeArray		Type
78071d4279SBram Moolenaar
79071d4279SBram Moolenaar
80071d4279SBram Moolenaarlet b:current_syntax = "msidl"
81071d4279SBram Moolenaar
825dc6252dSBram Moolenaarlet &cpo = s:cpo_save
835dc6252dSBram Moolenaarunlet s:cpo_save
84071d4279SBram Moolenaar" vi: set ts=8 sw=4:
85