Skip to content

Instantly share code, notes, and snippets.

@hachibeeDI
Last active December 9, 2015 19:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hachibeeDI/4316250 to your computer and use it in GitHub Desktop.
Save hachibeeDI/4316250 to your computer and use it in GitHub Desktop.
vbnet syntax for vim
" Vim syntax file
" Language : VisualBasic.NET
" Maintainers: OGURA Daiki
" Last Change: 2012 12 17
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
syn case ignore
syn keyword vbnetStatement Auto Ansi Assembly Declare Lib
syn keyword vbnetStatement Const Continue Custom
syn keyword vbnetStatement Default
syn keyword vbnetStatement Dim As DirectCast
syn keyword vbnetStatement Event Error
syn keyword vbnetStatement RaiseEvent
syn keyword vbnetStatement Step Stop
syn keyword vbnetStatement SyncLock
syn keyword vbnetStatement TypeOf
syn keyword vbnetStatement Unicode Variant When
syn keyword vbnetTypes Boolean Byte Char Date Decimal Double
syn keyword vbnetTypes Integer Long Object Short Single String
syn keyword vbnetTypes UInteger ULong UShort SByte
syn keyword vbnetTypes List Dictionary IEnumerable IObservable Func Action
syn match vbnetOperator "[()+\-/*=&]"
syn match vbnetOperator "[<>]=\="
syn match vbnetOperator "<>"
syn match vbnetOperator "\s\+_$"
" {{{
syn keyword vbnetStorage Delegate Namespace
syn keyword vbnetTypeDef Class Interface
syn match vbnetTypeDefEnd "End \(Class\|Interface\)$"
syn keyword vbnetStructure Structure Enum Module
syn match vbnetStructureEnd "End \(Structure\|Enum\|Module\)$"
syn keyword vbnetRepeat For Each Return While Next To
syn keyword vbnetConditional If Then Else ElseIf Case
syn match vbnetConditional "^\s+Select Case"
syn match vbnetConditionalEnd "End \(If\|Select\)$"
syn keyword vbnetModifier Inherits Implements MustInherit MustOverride Const Overrides Overridable Overloads Readonly WriteOnly Shared NotInheritable NotOverridable Shadows
syn keyword vbnetFunction Sub Function
syn match vbnetFunction "End \(Function\|Sub\)"
syn keyword vbnetScopeDecl Private Protected Public Friend Using
syn keyword vbnetSpecial Of Call
syn keyword vbnetSugar With AddHandler AddressOf Alias WithEvents RemoveHandler Handles From
syn match vbnetDefAnonymous "New \(With$\|With {$\)"
syn keyword vbnetProperty Property Get Set
syn match vbnetPropertyEnd "^\s*End \(Get\|Set\|Property\)$"
syn keyword vbnetKeyword ByVal GetType ParamArray On Option Optional Exit Imports
syn keyword vbnetException Try Catch Finally Throw
syn match vbnetException "End Try"
syn keyword vbnetOperator New And Or AndAlso OrElse Is Not IsNot Like Mod
syn keyword vbnetBoolean True False
syn match vbnetDelimiter "\(,\|\.\|:\|{\|}\|\s_$\)"
syn keyword vbnetDeprecated Do Until Loop Goto Redim GoSub Resume Erase Preserve IIF ByRef
syn match vbnetDeprecated "^\s*End With"
"}}}
syn keyword vbnetConst MyBase MyClass Me Nothing
syn keyword vbnetTodo contained TODO FIXME HACK
"integer number, or floating point number without a dot.
syn match vbnetNumber "\<\d\+\>"
"floating point number, with dot
syn match vbnetNumber "\<\d\+\.\d*\>"
"floating point number, starting with a dot
syn match vbnetNumber "\.\d\+\>"
" String and Character contstants
syn region vbnetString start=+"+ end=+"+
syn region vbnetComment start="\<REM\>" end="$" contains=vbnetTodo
syn region vbnetComment start="'" end="$" contains=vbnetTodo
syn region vbnetPreCondit start="^#If\s" end="Then$"
syn region vbnetPreCondit start="^#ElseIf\s" end="Then$"
syn match vbnetPreCondit "^#Else$"
syn match vbnetPreCondit "^#End If$"
syn region vbnetPreCondit start="^#Region\s\+\"" end="\"$"
syn match vbnetPreCondit "^#End Region$"
syn region vbnetPreCondit start="^#ExternalSource(" end=")$"
syn match vbnetPreCondit "^#End ExternalSource$"
syn region vbnetPreCondit start="^#Const\s" end="$"
syn region vbnetLineNumber start="^\d" end="\s"
syn match vbnetTypeSpecifier "[a-zA-Z0-9][\$%&!#]"ms=s+1
" xml literals {{{
"syn match vbnetXmlTag "<[a-zA-Z]\_[^>]*/>" contains=vbnetXmlQuote,vbnetXmlEscape,vbnetXmlString
"syn region vbnetXmlString start="\"" end="\"" contained
"syn match vbnetXmlStart "<[a-zA-Z]\_[^>]*>" contained contains=vbnetXmlQuote,vbnetXmlEscape,vbnetXmlString
"syn region vbnetXml start="<\([a-zA-Z]\_[^>]*\_[^/]\|[a-zA-Z]\)>" matchgroup=vbnetXmlStart end="</\_[^>]\+>" contains=vbnetXmlEscape,vbnetXmlQuote,vbnetXml,vbnetXmlStart,vbnetXmlComment
"syn region vbnetXmlEscape matchgroup=vbnetXmlEscapeSpecial start="<%=" matchgroup=vbnetXmlEscapeSpecial end="%>" contained contains=TOP
"syn match vbnetXmlQuote "&[^;]\+;" contained
"syn match vbnetXmlComment "<!--\_[^>]*-->" contained
syn region vbnetXmlEnd start="^\s*</[a-zA-Z]" end=">" contains=vbnetString
"" }}}
syn region vbnetAttribute start="^\s*<[a-zA-Z]" end=">" contains=vbnetString
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
if version >= 508 || !exists("did_vbnet")
let did_vbnet_syntax_inits = 1
hi link vbnetLineNumber Comment
hi link vbnetNumber Number
hi link vbnetConst Constant
hi link vbnetBoolean Boolean
hi link vbnetRepeat Repeat
hi link vbnetConditional Conditional
hi link vbnetConditionalEnd Conditional
hi link vbnetKeyword Keyword
hi link vbnetException Exception
hi link vbnetAttribute PreProc
hi link vbnetStorage StorageClass
hi link vbnetModifier vbnetStorage
hi link vbnetScopeDecl vbnetStorage
hi link vbnetTypeDef TypeDef
hi link vbnetTypeDefEnd TypeDef
hi link vbnetStructure Structure
hi link vbnetStructureEnd Structure
hi link vbnetError Error
hi link vbnetStatement Statement
hi link vbnetString String
hi link vbnetComment Comment
hi link vbnetTodo Todo
hi link vbnetFunction Function
hi link vbnetMethods PreProc
hi link vbnetPreCondit PreCondit
hi link vbnetSpecial Special
hi link vbnetSugar vbnetSpecial
hi link vbnetDefAnonymous vbnetSpecial
hi link vbnetProperty vbnetSugar
hi link vbnetPropertyEnd vbnetSugar
hi link vbnetTypeSpecifier Type
hi link vbnetTypes Type
hi link vbnetOperator Operator
hi link vbnetDelimiter Delimiter
hi link vbnetDeprecated Error
" hi link vbnetXml String
" hi link vbnetXmlTag Include
" hi link vbnetXmlString String
" hi link vbnetXmlStart Include
" hi link vbnetXmlEscape Normal
" hi link vbnetXmlEscapeSpecial Special
" hi link vbnetXmlQuote Special
" hi link vbnetXmlComment Comment
endif
let b:match_words = '\<Namespace\>:\<End Namespace\>'
\ . ',\<Module\>:\<End Module\>'
\ . ',\<Class\>:\<End Class\>'
\ . ',\<Property\>:\<End Property\>'
\ . ',\<Enum\>:\<End Enum\>'
\ . ',\<Function\>:\<End Function\>'
\ . ',\<Sub\>:\<End Sub\>'
\ . ',\<Get\>:\<End Get\>'
\ . ',\<Set\>:\<End Set\>'
\ . ',\<Do\>:\<Loop\>'
\ . ',\<For\>:\<Next\>'
\ . ',\<While\>:\<End While\>'
\ . ',\<Select\>:\<End Select\>'
\ . ',\<Using\>:\<End Using\>'
\ . ',\<With\>:\<End With\>'
\ . ',\<SyncLock\>:\<End SyncLock\>'
\ . ',\<Try\>:\<End Try\>'
\ . ',\<If\>:\<End If\>'
let b:current_syntax = "vbnet"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment