" Vim syntax file " Language: VB.NET " Maintainer: Tim Pope " Last Change: 2006 Apr 28 " Filenames: *.vb " $Id: vbnet.vim,v 1.7 2006/04/28 06:00:29 tpope Exp $ " For version 5.x: Clear all syntax items " For version 6.x: Quit when a syntax file was already loaded if version < 600 syntax clear elseif exists("b:current_syntax") finish endif " 2. Lexical Grammar syn case ignore syn sync linebreaks=2 " 2.1.4 Comments syn keyword vbTodo contained TODO FIXME XXX NOTE syn region vbnetComment start="\" end="$" contains=vbnetTodo syn region vbnetComment start="'" end="$" contains=vbnetTodo syn cluster vbnetComments contains=vbnetComment,vbnetXmlComment " 2.3 Keywords syn keyword vbnetKeywordError EndIf GoSub Let Variant Wend " Every possible keyword (Version 8). Used for certain errors below syn keyword vbnetKeywordError AddHandler AddressOf Alias And AndAlso As Boolean ByRef Byte ByVal Call Case Catch CBool CByte CChar CDate CDec CDbl Char CInt Class CLng CObj Const Continue CSByte CShort CSng CStr CType CUInt CULng CUShort Date Decimal Declare Default Delegate Dim DirectCast Do Double Each Else ElseIf End EndIf Enum Erase Error Event Exit False Finally For Friend Function Get GetType Global GoSub GoTo Handles If Implements Imports In Inherits Integer Interface Is IsNot Let Lib Like Long Loop Me Mod Module MustInherit MustOverride MyBase MyClass Namespace Narrowing New Next Not Nothing NotInheritable NotOverridable Object Of On Operator Option Optional Or OrElse Overloads Overridable Overrides ParamArray Partial Private Property Protected Public RaiseEvent ReadOnly ReDim RemoveHandler Resume Return SByte Select Set Shadows Shared Short Single Static Step Stop String Structure Sub SyncLock Then Throw To True Try TryCast TypeOf Variant Wend UInteger ULong UShort Using When While Widening With WithEvents WriteOnly contained syn match vbnetIdentifier "\[\h\w*\]" syn cluster vbnetStrict contains=vbnetIdentifier,vbnetKeywordError " 2.4 Literals syn keyword vbnetBoolean False True syn match vbnetNumber "[+-]\=\(&O[0-7]*\|&H\x\+\|\<\d\+\)[SIL]\=\>" syn match vbnetNumber "[+-]\=\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[FRD]\=\>" syn match vbnetNumber "[+-]\=\<\d\+[eE][-+]\=\d\+[FRD]\=\>" syn match vbnetNumber "[+-]\=\<\d\+\([eE][-+]\=\d\+\)\=[FRD]\>" syn region vbnetString start=+"+ end=+"+ end=+$+ skip=+""+ syn match vbnetCharacter +"\([^"]\|""\)"c+ " 2.4.6 Date literals syn match vbnetDate "1\=\d\([-/]\)[123]\=\d\1\d\{3,4\}" contained " For simplicity, require at least an hour and a minute in a time, and require " minutes and seconds to be two digits syn match vbnetDate "\<[12]\=\d:\d\d\(:\d\d\)\=\s*\([AP]M\)\=\>" contained syn match vbnetDate "\<_$" contained " Avoid matching #directives syn region vbnetDateGroup matchgroup=vbnetDate start="\(\S\s*\)\@<=#" skip="\<_$" end="\(\S\s*\)\@<=#" end="$" contains=vbnetDate,@vbnetStrict syn keyword vbnetConstant Nothing syn cluster vbnetLiterals contains=vbnetBoolean,vbnetNumber,vbnetString,vbnetCharacter,vbnetDateGroup,vbnetConstant " 3. Preprocessing Directives syn region vbnetPreCondit \ start="^\s*#\s*\(If\|ElseIf\|Else\|End\s\+If\)\>" skip="\<_$" \ end="$" contains=@vbnetComments keepend "syn match vbnetPreCondit "\(\s*#\s*\(Else\)\=If\>.*\)\@<=\" syn region vbnetDefine start="^\s*#\s*Const\>" skip="\<_$" end="$" \ contains=@vbnetComments keepend syn region vbnetInclude \ start="^\s*#\s*\(ExternalSource\|End\s\+ExternalSource\)\>" \ skip="\<_$" end="$" contains=@vbnetComments keepend syn region vbnetRegion matchgroup=vbnetPreProc start="^\s*#\s*Region\>" end="^\s*#\s*End\s\+Region\>" fold contains=TOP syn cluster vbnetPreProc contains=vbnetPreCondit,vbnetDefine,vbnetInclude,vbnetRegion " 4. General Concepts syn keyword vbnetTypeAccess Public Private Protected Friend contained syn match vbnetAccessModifier "\<\(Friend\|Private\|Protected\|Protected\s\+\Friend\|Public\)\>" " This is from section 9 but must be here to lower the priority syn match vbnetModifier "\<\(Shared\|Static\|ReadOnly\|WithEvents\|Shadows\)\>" " 5. Attributes "syn match vbnetAttribute "<\(\s_\n\|[^<=>]\)\{-1,}>" syn match vbnetAttribute "<\s*\%(\h\w*\|\[\h\w*\]\)\%(\.\h\w*\|\.\[\h\w*\]\)*\%(\s*([^()]*)\)\=\(\s*,\s*\%(_\n\s*\)\=\%(\h\w*\|\[\h\w*\]\)\%(\.\h\w*\|\.\[\h\w*\]\)*\%(\s*([^()]*)\)\=\)\{-}\s*>" " 6. Source Files and Namespaces syn keyword vbnetImports Imports syn match vbnetOption "^\s*Option\s\+\(\(Explicit\|Strict\)\(\s\+On\|\s\+Off\)\=\|Compare\s\+\(Binary\|Text\)\)\s*$" if ! exists("vbnet_no_code_folds") syn region vbnetNamespaceBlock matchgroup=vbnetStorage start="\(\w\s*\)\@" contains=TOP fold else syn region vbnetNamespaceBlock matchgroup=vbnetStorage start="\(\w\s*\)\@" contains=TOP endif " 7. Types " 7.2 Interface Implementation syn keyword vbnetTypeImplementsKeyword Implements contained syn match vbnetTypeImplementsClause "\(^\|:\)\s*Implements\s\+\%(\h\w*\|\[\h\w*\]\)\%(\.\h\w*\|\.\[\h\w*\]\)*\(\s*,\s*\%(\h\w*\|\[\h\w*\]\)\%(\.\h\w*\|\.\[\h\w*\]\)*\)*" contains=vbnetTypeImplementsKeyword,@vbnetStrict contained skipwhite skipnl nextgroup=@vbnetTypeImplements syn match vbnetTypeImplementsComment "\s*\%('\|\\).*$" contains=@vbnetComments,@vnetStrict contained skipwhite skipempty nextgroup=@vbnetTypeImplements syn match vbnetTypeImplementsPreProc "^\s*#.*$" contains=@vbnetPreProc,@vbnetStrict contained skipwhite skipempty nextgroup=@vbnetTypeImplements syn cluster vbnetTypeImplements contains=vbnetTypeImplementsClause,vbnetTypeImplementsComment,vbnetTypeImplementsPreProc " 7.3 Primitive Types syn match vbnetPossibleType "\%(\<\h\w*\|\[\h\w*\]\)\%(\.\h\w*\|\.\[\h\w*\]\)*" contained skipwhite nextgroup=vbnetGeneric syn keyword vbnetBuiltinType Boolean Byte Char Date Decimal Double Single Integer Long Object Short String skipwhite nextgroup=vbnetGeneric syn match vbnetSystemType "\" skipwhite nextgroup=vbnetGeneric syn cluster vbnetType contains=vbnetBuiltinType,vbnetSystemType syn cluster vbnetAnyType contains=@vbnetType,vbnetPossibleType syn match vbnetTypeSpecifier "[a-zA-Z0-9]\@<=[\$%&#]" syn match vbnetTypeSpecifier "[a-zA-Z0-9]\@<=!\([^a-zA-Z0-9]\|$\)"me=s+1 " 7.4 Enumerations syn keyword vbnetEnumWords Shadows Enum contained syn cluster vbnetEnum contains=vbnetTypeAccess,vbnetEnumWords,vbnetAsClause syn match vbnetEnumDeclaration "\<\(\w\+\s\+\)*\(\.*\)\@" containedin=vbnetEnumBlock " 7.5 Classes syn keyword vbnetClassWords MustInherit NotInheritable Class contained syn cluster vbnetClass contains=vbnetTypeAccess,vbnetClassWords syn match vbnetClassGeneric "\%(\w\s*\)\@<=(\s*Of\s\+[^)]*)" contained contains=vbnetGeneric,@vbnetStrict skipwhite skipempty nextgroup=@vbnetClassBase,@vbnetTypeImplements syn match vbnetClassDeclaration "\<\(\w\+\s\+\)*\(\.*\)\@" containedin=vbnetClassBlock " 7.5.1 Class Base Specification syn keyword vbnetInheritsKeyword Inherits contained syn match vbnetClassBase "\(^\|:\)\s*Inherits\s\+\%(\h\w*\|\[\h\w*\]\)\%(\.\h\w*\|\.\[\h\w*\]\)*" contains=vbnetInheritsKeyword,@vbnetType,@vbnetStrict contained skipwhite skipempty nextgroup=@vbnetTypeImplements syn match vbnetClassBaseComment "\s*\%('\|\\).*$" contains=@vbnetComments,@vbnetStrict contained skipwhite skipempty nextgroup=@vbnetClassBase,@vbnetTypeImplements syn match vbnetClassBasePreProc "^\s*#.*$" contains=@vbnetPreProc,@vbnetStrict contained skipwhite skipempty nextgroup=@vbnetClassBase,@vbnetTypeImplements syn cluster vbnetClassBase contains=vbnetClassBase,vbnetClassBaseComment,vbnetClassBasePreProc " 7.6 Structures syn keyword vbnetStructureWords Implements Structure contained syn cluster vbnetStructure contains=vbnetTypeAccess,vbnetStructureWords syn match vbnetStructureDeclaration "\<\(\w\+\s\+\)*\(\.*\)\@" containedin=vbnetStructureBlock " 7.7 Modules syn keyword vbnetModuleWords Module contained syn cluster vbnetModule contains=vbnetTypeAccess,vbnetModuleWords syn match vbnetModuleDeclaration "\<\(\w\+\s\+\)*\(\.*\)\@" containedin=vbnetModuleBlock " 7.8 Interfaces syn keyword vbnetInterfaceWords Shadows Inherits Interface contained syn cluster vbnetInterface contains=vbnetTypeAccess,vbnetInterfaceWords syn match vbnetInterfaceDeclaration "\<\(\w\+\s\+\)*\(\.*\)\@" containedin=vbnetInterfaceBlock " 7.8.1 Interface Inheritance syn match vbnetInterfaceBase "\(^\|:\)\s*Inherits\s\+\%(\h\w*\|\[\h\w*\]\)\%(\.\h\w*\|\.\[\h\w*\]\)*\(\s*,\s*\%(\h\w*\|\[\h\w*\]\)\%(\.\h\w*\|\.\[\h\w*\]\)*\)*" contains=vbnetInheritsKeyword,@vbnetStrict contained skipwhite skipempty nextgroup=@vbnetInterfaceBase syn match vbnetInterfaceBaseComment "\s*\%('\|\\).*$" contains=@vbnetComments,@vbnetStrict contained skipwhite skipempty nextgroup=@vbnetInterfaceBase syn match vbnetInterfaceBasePreProc "^\s*#.*$" contains=@vbnetPreProc,@vbnetStrict contained skipwhite skipempty nextgroup=@vbnetInterfaceBase syn cluster vbnetInterfaceBase contains=vbnetInterfaceBase,vbnetInterfaceBaseComment,vbnetInterfaceBasePreProc " 7.10 Delegates syn keyword vbnetStorage Delegate " 9. Type Members " 9.1 Interface Method Implementation syn keyword vbnetImplementsKeyword Implements contained syn match vbnetImplementsClause "\.*\)\@\s\+\%(\h\w*\>\|\[\h\w*\]\)" contains=@vbnetSub,@vbnetStrict containedin=vbnetSubBlock skipwhite nextgroup=vbnetSubArguments,@vbnetHandlesOrImplements syn match vbnetProcedureEnd "\" containedin=vbnetSubBlock syn region vbnetFunctionArguments start="(" skip="([^)]*)\|\<_$" end=")" end="$" contains=vbnetParameter,vbnetAsClause,@vbnetLiterals,@vbnetStrict keepend skipwhite nextgroup=vbnetFunctionReturn,@vbnetHandlesOrImplements contained syn match vbnetFunctionReturn "\.*\)\@\s\+\%(\h\w*\>\|\[\h\w*\]\)" contains=@vbnetFunction,@vbnetStrict containedin=vbnetFunctionBlock skipwhite nextgroup=vbnetFunctionArguments,vbnetFunctionReturn,@vbnetHandlesOrImplements syn match vbnetProcedureEnd "\" containedin=vbnetFunctionBlock " 9.2.2 External Method Declarations syn keyword vbnetExternalProcedureWords Declare Ansi Unicode Auto Lib Alias contained syn region vbnetExternalSubArguments start="(" skip="([^)]*)\|\<_$" end=")" end="$" contains=vbnetParameter,vbnetAsClause,@vbnetLiterals,@vbnetStrict keepend contained syn match vbnetExternalSubDeclaration #\<\(\w\+\s\+\)*\(\<\(End\|Exit\)\>.*\)\@\s\+"[^"]*"\)\=\s\+\(_\n\s*\)\=# contains=@vbnetSub,vbnetExternalProcedureWords,vbnetString,@vbnetStrict skipwhite nextgroup=vbnetExternalSubArguments syn region vbnetExternalFunctionArguments start="(" skip="([^)]*)\|\<_$" end=")" end="$" contains=vbnetParameter,vbnetAsClause,@vbnetLiterals,@vbnetStrict keepend skipwhite nextgroup=vbnetAsClause contained syn match vbnetExternalFunctionDeclaration #\<\(\w\+\s\+\)*\(\<\(End\|Exit\)\>.*\)\@\s\+"[^"]*"\)\=\s\+\(_\n\s*\)\=# contains=@vbnetFunction,vbnetExternalProcedureWords,vbnetString,@vbnetStrict skipwhite nextgroup=vbnetExternalFunctionArguments " 9.2.5 Method Parameters syn keyword vbnetParameter ByVal ByRef Optional ParamArray contained " 9.2.6 Event Handling syn keyword vbnetHandlesKeyword Handles MyBase contained syn match vbnetHandlesClause "\" contains=vbnetHandlesKeyword,@vbnetStrict contained syn cluster vbnetHandlesOrImplements contains=vbnetHandlesClause,vbnetImplementsClause " 9.4 Events syn keyword vbnetEventWords Public Private Protected Friend Shadows Shared Event contained syn cluster vbnetEvent contains=vbnetEventWords syn region vbnetEventArguments start="(" skip="([^)]*)\|\<_$" end=")" end="$" contains=vbnetParameter,vbnetAsClause,@vbnetLiterals,@vbnetStrict keepend skipwhite nextgroup=vbnetImplementsClause,vbnetAsError contained syn match vbnetEventDeclaration "\<\(\w\+\s\+\)*\(\<\(End\|Exit\)\>.*\)\@\s\+\%(\h\w*\>\|\[\h\w*\]\)" contains=@vbnetEvent,@vbnetStrict skipwhite nextgroup=vbnetEventArguments,vbnetImplementsClause " 9.5 Constants syn keyword vbnetStatement Const " 9.6 Instance and Shared Variables syn keyword vbnetStatement Dim syn keyword vbnetAsClause As skipwhite nextgroup=@vbnetAnyType,@vbnetStrict contained syn keyword vbnetAsNewClause As skipwhite nextgroup=vbnetNewClause,@vbnetAnyType,@vbnetStrict "syn keyword vbnetVarMemberWords Public Private Protected Friend Shadows Shared ReadOnly WithEvents Dim As contained "syn match vbnetVarMemberDef "\<\(\(Public\|Private\|Protected\|Friend\|Shadows\|Shared\|ReadOnly\|WithEvents\|Dim\)\s\+\)\+\h\w*\(\s\+As\s\+\%(\h\w*\|\[\h\w*\]\)\%(\.\h\w*\|\.\[\h\w*\]\)*\|[\$%&#!]\)\=\(\s*=\s*[^,]*\)\=\(\s*,\s*\h\w*\(\s\+As\s\+\%(\h\w*\|\[\h\w*\]\)\%(\.\h\w*\|\.\[\h\w*\]\)*\|[\$%&#!]\)\=\)*" contains=vbnetVarMemberWords,vbnetAsClause,vbnetTypeSpecifier " 9.7 Properties syn keyword vbnetPropertyWords Property Default ReadOnly WriteOnly contained syn cluster vbnetProperty contains=vbnetProcedureWords,vbnetPropertyWords,vbnetParameter syn match vbnetPropertyDeclaration "\<\(\w\+\s\+\)*\(\<\(End\|Exit\)\>.*\)\@\s\+\%(\h\w*\>\|\[\h\w*\]\)" contains=@vbnetProperty,@vbnetStrict containedin=vbnetReadWritePropertyBlock,vbnetReadOnlyPropertyBlock,vbnetWriteOnlyPropertyBlock skipwhite nextgroup=vbnetPropertyArguments,vbnetPropertyReturn,vbnetImplementsClause syn region vbnetPropertyArguments start="(" skip="([^)]*)\|\<_$" end=")" end="$" contains=vbnetParameter,vbnetAsClause,@vbnetLiterals,@vbnetStrict keepend skipwhite nextgroup=vbnetPropertyReturn,vbnetImplementsClause contained syn match vbnetPropertyReturn "\" contains=vbnetAsClause,@vbnetStrict skipwhite nextgroup=vbnetImplementsClause contained syn match vbnetProcedureEnd "\" containedin=vbnetReadWritePropertyBlock,vbnetReadOnlyPropertyBlock,vbnetWriteOnlyPropertyBlock syn keyword vbnetGetterWords Get Public Protected Private Friend contained syn cluster vbnetGetter contains=vbnetGetterWords syn match vbnetGetterDeclaration "\<\(\w\+\s\+\)*\(\.*\)\@" contains=@vbnetGetter,@vbnetStrict contained containedin=vbnetGetterBlock syn keyword vbnetSetterWords Set ByVal Public Protected Private Friend contained syn cluster vbnetSetter contains=vbnetSetterWords syn match vbnetSetterDeclaration "\<\(\w\+\s\+\)*\(\.*\)\@" " 10.4 SyncLock Statement syn match vbnetStatement "\<\(End\s\+\)\=SyncLock\>" " 10.5 Event Statements syn keyword vbnetEvent AddHandler RemoveHandler RaiseEvent syn keyword vbnetStatement Call " 10.8 Conditional Statements syn keyword vbnetConditional Then ElseIf Else syn match vbnetConditional "\<\(End\s\+\)\=If\>" syn match vbnetConditional "\<\(Select\(\s\+Case\)\|\(End\|Exit\)\s\+Select\)\>" syn keyword vbnetLabel Case " 10.9 Loop Statements syn keyword vbnetRepeat To Step Each In Next Loop Until syn match vbnetRepeat "\<\(End\s\+\|Exit\s\+\)\=While\>" syn match vbnetRepeat "\<\(Exit\s\+\)\=\(Do\|For\)\>" " 10.10 Exception-Handling Statements syn keyword vbnetException Catch When Finally Resume Throw syn match vbnetException "\<\(On\s\+Error\|\(End\s\+\|Exit\s\+\)\=Try\)\>" " 10.11 Branch Statements syn keyword vbnetBranch GoTo Stop Return syn match vbnetBranch "\" " 10.12 Array-Handling Statements syn keyword vbnetArrayHandler Erase syn match vbnetArrayHandler "\" " 11. Expressions " 11.4.3 Instance Expressions syn keyword vbnetStatement Me MyBase MyClass " 11.4.5 AddressOf Expressions syn keyword vbnetStorage AddressOf " 11.10 New Expressions syn keyword vbnetNewClause New skipwhite nextgroup=@vbnetAnyType " 11.11 Cast Expressions syn keyword vbnetCast CBool CByte CChar CDate CDbl CDec Char CInt CLng CObj CShort CSng CStr CType DirectCast syn keyword vbnetOperator And Or Not Xor Mod In Is Imp Eqv Like AndAlso OrElse GetType TypeOf " " Folding " if ! exists("vbnet_no_code_folds") "syn region vbnetNamespaceBlock start="\(\w\s*\)\@.*\)\@"rs=s end="\<\End\s\+Namespace\>"re=e contains=TOP fold syn region vbnetEnumBlock start="\(\w\s*\)\@.*\|\.\)\@" contains=vbnetEnumDeclaration,vbnetAttribute,@vbnetComments,@vbnetPreProc,@vbnetLiterals fold syn region vbnetClassBlock start="\(\w\s*\)\@.*\)\@"rs=s matchgroup=vbnetClassWords end="\<\End\s\+Class\>" contains=TOP fold syn region vbnetStructureBlock start="\(\w\s*\)\@.*\)\@"rs=s matchgroup=vbnetStructureWords end="\<\End\s\+Structure\>" contains=TOP fold syn region vbnetModuleBlock start="\(\w\s*\)\@.*\)\@"rs=s matchgroup=vbnetModuleWords end="\<\End\s\+Module\>" contains=TOP fold syn region vbnetInterfaceBlock start="\(\w\s*\)\@.*\)\@"rs=s matchgroup=vbnetInterfaceWords end="\<\End\s\+Interface\>" contains=vbnetInterfaceDeclaration,vbnetAttribute,@vbnetComments,@vbnetPreProc,vbnetSubDeclaration,vbnetFunctionDeclaration,vbnetPropertyDeclaration,vbnetEventDeclaration fold syn region vbnetSubBlock start="\(\w\s*\)\@.*\)\@"rs=s matchgroup=vbnetProcedure end="\" contains=TOP fold syn region vbnetFunctionBlock start="\(\w\s*\)\@.*\)\@"rs=s matchgroup=vbnetProcedure end="\" contains=TOP fold syn region vbnetReadWritePropertyBlock start="\(\w\s*\)\@.*\)\@"rs=s matchgroup=vbnetProcedure end="\" contains=vbnetPropertyDeclaration,vbnetGetterBlock,vbnetSetterBlock,@vbnetComments,@vbnetPreProc fold syn region vbnetReadOnlyPropertyBlock start="\(\w\s*\)\@\&\(\w\+\s\+\)*\)Property\>"rs=s matchgroup=vbnetProcedure end="\" contains=vbnetPropertyDeclaration,vbnetGetterBlock,vbnetSetterErrorBlock,@vbnetComments,@vbnetPreProc fold syn region vbnetWriteOnlyPropertyBlock start="\(\w\s*\)\@\&\(\w\+\s\+\)*\)Property\>"rs=s matchgroup=vbnetProcedure end="\" contains=vbnetPropertyDeclaration,vbnetGetterErrorBlock,vbnetSetterBlock,@vbnetComments,@vbnetPreProc fold syn region vbnetGetterBlock start="\(\w\s*\)\@.*\)\@"rs=s matchgroup=vbnetProcedure end="\" contains=TOP contained fold syn region vbnetSetterBlock start="\(\w\s*\)\@.*\)\@"rs=s matchgroup=vbnetProcedure end="\" contains=TOP contained fold syn region vbnetGetterErrorBlock matchgroup=vbnetError start="\" end="\" contains=TOP contained fold syn region vbnetSetterErrorBlock matchgroup=vbnetError start="\" end="\" contains=TOP contained fold else syn region vbnetReadWritePropertyBlock start="\(\w\s*\)\@.*\)\@"rs=s matchgroup=vbnetProcedure end="\" contains=vbnetPropertyDeclaration,vbnetGetterBlock,vbnetSetterBlock,@vbnetComments,@vbnetPreProc syn region vbnetReadOnlyPropertyBlock start="\(\w\s*\)\@\&\(\w\+\s\+\)*\)Property\>"rs=s matchgroup=vbnetProcedure end="\" contains=vbnetPropertyDeclaration,vbnetGetterBlock,vbnetSetterErrorBlock,@vbnetComments,@vbnetPreProc syn region vbnetWriteOnlyPropertyBlock start="\(\w\s*\)\@\&\(\w\+\s\+\)*\)Property\>"rs=s matchgroup=vbnetProcedure end="\" contains=vbnetPropertyDeclaration,vbnetGetterErrorBlock,vbnetSetterBlock,@vbnetComments,@vbnetPreProc syn region vbnetGetterBlock start="\(\w\s*\)\@.*\)\@"rs=s matchgroup=vbnetProcedure end="\" contains=TOP contained syn region vbnetSetterBlock start="\(\w\s*\)\@.*\)\@"rs=s matchgroup=vbnetProcedure end="\" contains=TOP contained syn region vbnetGetterErrorBlock matchgroup=vbnetError start="\" end="\" contains=TOP contained syn region vbnetSetterErrorBlock matchgroup=vbnetError start="\" end="\" contains=TOP contained endif "let vbnet_v7 = 1 if ! exists("vbnet_v7") " 4.7 Type and Namespace Names syn keyword vbnetStatement Global " 4.9 Generic Types and Methods syn keyword vbnetOfClause Of skipwhite nextgroup=@vbnetAnyType contained syn match vbnetGeneric "(Of\s\+\%(\h\w*\|\[\h\w*\]\)\%(\.\h\w*\|\.\[\h\w*\]\)*\(\s\+As\(\s\+\%(\h\w*\|\[\h\w*\]\)\%(\.\h\w*\|\.\[\h\w*\]\)*\|\s*{\s*\%(\h\w*\|\[\h\w*\]\)\%(\.\h\w*\|\.\[\h\w*\]\)*\(\s*,\s*\%(\h\w*\|\[\h\w*\]\)\%(\.\h\w*\|\.\[\h\w*\]\)*\)*\s*}\)*\)\=)" contains=vbnetAsClause,vbnetOfClause,vbnetGenericTypeList,@vbnetStrict contained syn match vbnetGenericTypeList "{\%(\h\w*\|\[\h\w*\]\)\%(\.\h\w*\|\.\[\h\w*\]\)*\(\s*,\s*\%(\h\w*\|\[\h\w*\]\)\%(\.\h\w*\|\.\[\h\w*\]\)*\)*}" contains=@vbnetType contained " 7.3 Primitive Types syn keyword vbnetBuiltinType SByte UShort UInteger ULong " 7.11 Partial Types "syn keyword vbnetClassModifier Partial syn keyword vbnetClassWords Partial contained " 9.8 Operators "syn match vbnetProcedure "\<\(End\s\+\|Exit\s\+\)\=Operator\>" syn keyword vbnetOperatorWords Public Shared Operator Widening Narrowing ByVal IsTrue IsFalse CType contained "syn keyword vbnetParameter ByVal contained syn match vbnetOperatorDeclaration "\<\(.*\\&\(\w\+\s\+\)*\)\(\<\(End\|Exit\)\>.*\)\@\s\+[A-Za-z&*+/\\^<=>-]*([^)]*)" contains=vbnetOperatorWords,vbnetAsClause,vbnetTypeSpecifier,@vbnetStrict containedin=vbnetOperatorBlock skipwhite nextgroup=vbnetAsClause syn match vbnetProcedureEnd "\" containedin=vbnetOperatorBlock syn match vbnetBranch "\" if ! exists("vbnet_no_code_folds") syn region vbnetOperatorBlock start="\(^\|:\)\s*\zs\<\(\w\+\s\+\)*\(\<\(End\|Exit\)\>.*\)\@"rs=s matchgroup=vbnetProcedure end="\" contains=TOP fold endif " 10.9 Loop Statements syn match vbnetRepeat "\" " 10.13 Using Statement syn match vbnetStatement "\<\(End\s\+\)\=Using\>" " 11.5.3 Is Expressions syn keyword vbnetOperator IsNot " 11.11 Cast Expressions syn keyword vbnetCast CSByte CUShort CUInt CULng TryCast " 12. Documentation Comments syn match vbnetXmlCommentLeader +'''+ contained syn match vbnetXmlComment +'''.*$+ contains=vbnetXmlCommentLeader,@vbnetXml syn include @vbnetXml syntax/xml.vim endif if ! exists("vbnet_no_functions") " From the Microsoft.VisualBasic namespace. " Extracted from the Mono sources; let me know if I missed any. syn keyword vbnetMSConversion ErrorToString Fix Hex Int Oct Str Val syn keyword vbnetMSDateAndTime DateAdd DateDiff DatePart DateSerial DateValue Day Hour Minute Month MonthName Second TimeSerial TimeValue Weekday WeekdayName Year DatePart DateString Now TimeOfDay Timer TimeString Today syn keyword vbnetMSFileSystem ChDir ChDrive CurDir Dir EOF FileAttr FileClose FileCopy FileDateTime FileGet FileGetObject FileLen FileOpen FilePut FilePutObject FileWidth FreeFile GetAttr Input InputString Kill LineInput Loc Lock LOF MkDir Print PrintLine Rename Reset RmDir Seek SetAttr SPC TAB Unlock Write WriteLine syn keyword vbnetMSFinancial DDB FV IPmt IRR MIRR NPer NPV Pmt PPmt PV Rate SLN SYD syn keyword vbnetMSGlobals ScriptEngineBuildVersion ScriptEngineMajorVersion ScriptEngineMinorVersion ScriptEngine syn keyword vbnetMSInformation Erl Err IsArray IsDate IsDBNull IsError IsNothing IsNumeric IsReference LBound QBColor RGB SystemTypeName TypeName UBound VarType VbTypeName syn keyword vbnetMSInteraction AppActivate Beep CallByName Choose Command CreateObject DeleteSetting Environ GetAllSettings GetObject GetSetting IIf InputBox MsgBox Partition SaveSetting Shell Switch syn keyword vbnetMSStrings Asc AscW Chr ChrW Filter Format FormatCurrency FormatDateTime FormatNumber FormatPercent GetChar InStr InStrRev Join LCase Left Len LSet LTrim Mid Replace Right RSet RTrim Space Split StrComp StrConv StrDup StrReverse Trim UCase syn keyword vbnetMSVBMath Randomize Rnd syn match vbnetMSFunction "\= 508 || !exists("did_vbnet_syntax_inits") if version < 508 let did_vbnet_syntax_inits = 1 command -nargs=+ HiLink hi link else command -nargs=+ HiLink hi def link endif " 2. Lexical Grammar HiLink vbnetTodo Todo HiLink xmlRegion vbnetXmlComment HiLink vbnetXmlCommentLeader vbnetXmlComment HiLink vbnetXmlComment vbnetComment HiLink vbnetComment Comment HiLink vbnetKeywordError vbnetError HiLink vbnetAsError vbnetError HiLink vbnetError Error HiLink vbnetBoolean Boolean HiLink vbnetNumber Number HiLink vbnetCharacter Character HiLink vbnetString String HiLink vbnetDate Constant HiLink vbnetConstant Constant " 3. Preprocessing Directives HiLink vbnetPreCondit PreCondit HiLink vbnetDefine Define HiLink vbnetInclude Include HiLink vbnetPreProc PreProc " 4. General Concepts HiLink vbnetTypeAccess vbnetType HiLink vbnetAccessModifier vbnetModifier " 5. Attributes HiLink vbnetAttribute Special " 6. Source Files and Namespaces HiLink vbnetStorage vbnetStorageClass HiLink vbnetOption vbnetPreProc HiLink vbnetImports vbnetInclude " 7. Types HiLink vbnetTypeSpecifier vbnetType HiLink vbnetBuiltinType vbnetType HiLink vbnetSystemType vbnetType HiLink vbnetType Type HiLink vbnetClassModifier vbnetStorageClass HiLink vbnetEnumWords vbnetStorageClass HiLink vbnetModuleWords vbnetStorageClass HiLink vbnetClassWords vbnetStorageClass HiLink vbnetStructureWords vbnetStorageClass HiLink vbnetInterfaceWords vbnetStorageClass HiLink vbnetTypeImplementsKeyword vbnetStorageClass HiLink vbnetInheritsKeyword vbnetStorageClass HiLink vbnetTypeEnd vbnetStorageClass HiLink vbnetStorageClass StorageClass " 9. Type Members HiLink vbnetAsNewClause vbnetAsClause HiLink vbnetAsClause vbnetStorageClass HiLink vbnetOfClause vbnetStorageClass HiLink vbnetProcedureEnd Statement HiLink vbnetProcedure Statement HiLink vbnetModifier vbnetStorageClass HiLink vbnetPropertyWords vbnetStatement HiLink vbnetGetterWords vbnetStatement HiLink vbnetSetterWords vbnetStatement HiLink vbnetExternalProcedureWords vbnetStatement HiLink vbnetProcedureWords vbnetStatement HiLink vbnetSubWords vbnetStatement HiLink vbnetFunctionWords vbnetStatement HiLink vbnetOperatorWords vbnetStatement HiLink vbnetVarMemberWords vbnetStatement HiLink vbnetHandlesKeyword vbnetStatement HiLink vbnetImplementsKeyword vbnetStatement HiLink vbnetEventWords vbnetStatement " 10. Statements HiLink vbnetStatement Statement HiLink vbnetLabel Label HiLink vbnetParameter Keyword HiLink vbnetEvent vbnetStatement HiLink vbnetConditional Conditional HiLink vbnetRepeat Repeat HiLink vbnetException Exception HiLink vbnetBranch Keyword HiLink vbnetArrayHandler Statement " 11. Expressions HiLink vbnetCast vbnetType HiLink vbnetOperator Operator HiLink vbnetNewClause Keyword " Functions HiLink vbnetMSConstants vbnetMSFunction HiLink vbnetMSConversion vbnetMSFunction HiLink vbnetMSDateAndTime vbnetMSFunction HiLink vbnetMSFileSystem vbnetMSFunction HiLink vbnetMSFinancial vbnetMSFunction HiLink vbnetMSGlobals vbnetMSFunction HiLink vbnetMSInformation vbnetMSFunction HiLink vbnetMSInteraction vbnetMSFunction HiLink vbnetMSStrings vbnetMSFunction HiLink vbnetMSVBMath vbnetMSFunction HiLink vbnetMSVBUtils vbnetMSFunction HiLink vbnetMSFunction Function delcommand HiLink endif let b:current_syntax = "vbnet" " vim:set ft=vim sts=4 sw=4: