{ "name": "VB.NET", "scopeName": "source.vbnet", "patterns": [ { "include": "#comment-single-quote" }, { "include": "#comment-rem" }, { "include": "#keyword-a" }, { "include": "#keyword-b" }, { "include": "#keyword-c" }, { "include": "#keyword-d" }, { "include": "#keyword-e" }, { "include": "#keyword-f" }, { "include": "#keyword-g" }, { "include": "#keyword-h" }, { "include": "#keyword-i" }, { "include": "#keyword-j" }, { "include": "#keyword-k" }, { "include": "#keyword-l" }, { "include": "#keyword-m" }, { "include": "#keyword-n" }, { "include": "#keyword-o" }, { "include": "#keyword-p" }, { "include": "#keyword-r" }, { "include": "#keyword-s" }, { "include": "#keyword-t" }, { "include": "#keyword-u" }, { "include": "#keyword-v" }, { "include": "#keyword-w" }, { "include": "#keyword-x" }, { "include": "#keyword-y" }, { "include": "#integer-literal" }, { "include": "#floating-point-literal" }, { "include": "#character-literal" }, { "include": "#string-literal" }, { "include": "#date-literal" }, { "include": "#symbol" }, { "include": "#identifier" } ], "repository": { "character-literal": { "name": "string.quoted.double.vbnet", "match": "(?i:[\"\\x{201C}\\x{201D}]([^\"\\x{201C}\\x{201D}]|[\"\\x{201C}\\x{201D}]{2})[\"\\x{201C}\\x{201D}]C)" }, "comment-rem": { "name": "comment.line.singlequote.vbnet", "match": "(?i)(?\u003c=[^_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Nd}\\p{Mn}\\p{Mc}\\p{Cf}\\p{Pc}])REM((?=[\\r|\\n])| [^\\r\\n]*)" }, "comment-single-quote": { "name": "comment.line.singlequote.vbnet", "match": "['\\x{2018}\\x{2019}][^\\r\\n]*" }, "date-literal": { "name": "string.quoted.double.vbnet", "match": "(#\\s*(((((\\d+/\\d+/\\d+)|(\\d+-\\d+-\\d+))\\s+(\\d+:\\d+(:\\d+)?\\s*(AM|PM)?)))|((\\d+/\\d+/\\d+)|(\\d+-\\d+-\\d+))|(\\d+:\\d+(:\\d+)?\\s*(AM|PM)?))\\s*#)" }, "floating-point-literal": { "name": "string.quoted.double.vbnet", "match": "(?i:[0-9]*(\\.[0-9]+)?((?\u003c=[0-9])E[+-]?[0-9]+)?(?\u003c=[0-9])[FRD@\u0026#]?)" }, "identifier": { "name": "variable.other.namespace-alias.vbnet", "match": "(([\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}]|_[_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Nd}\\p{Mn}\\p{Mc}\\p{Cf}\\p{Pc}])[_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Nd}\\p{Mn}\\p{Mc}\\p{Cf}\\p{Pc}]*[%\u0026@!#$]?|\\[([\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}]|_[_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Nd}\\p{Mn}\\p{Mc}\\p{Cf}\\p{Pc}])[_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Nd}\\p{Mn}\\p{Mc}\\p{Cf}\\p{Pc}]*\\])" }, "integer-literal": { "name": "string.quoted.double.vbnet", "match": "(?i)(\u0026H[0-9A-F]+|\u0026O[0-7]+|\u0026B[0-1]+|[0-9]+)(S|I|L|US|UI|UL|%|!)?" }, "keyword-a": { "name": "keyword.other.vbnet", "match": "(?i)(?\u003c![.!])(AddHandler|AddressOf|Aggregate|Alias|And|AndAlso|Ansi|As|Ascending|Assembly|Async(?=\\s+(Sub|Function))|Auto|Await)\\b" }, "keyword-b": { "name": "keyword.other.vbnet", "match": "(?i)(?\u003c![.!])((?\u003c=Compare)\\s+Binary|Boolean|ByRef|Byte|ByVal)\\b" }, "keyword-c": { "name": "keyword.other.vbnet", "match": "(?i)(?\u003c![.!])(Call|Case|Catch|CBool|CByte|CChar|CDate|CDbl|CDec|Char|CInt|Class|CLng|CObj|(?\u003c=Option\\s)Compare|Const|Continue|CShort|CSng|CStr|CType|Custom(?=\\s+Event))\\b" }, "keyword-d": { "name": "keyword.other.vbnet", "match": "(?i)(?\u003c![.!])(Date|Decimal|Declare|Default|Delegate|Descending|Dim|DirectCast|Distinct|Do|Double)\\b" }, "keyword-e": { "name": "keyword.other.vbnet", "match": "(?i)(?\u003c![.!])(Each|Else|ElseIf|End|EndIf|Enum|Equals|Erase|Error|Event|Exit|(?\u003c=Option)\\s+Explicit)\\b" }, "keyword-f": { "name": "keyword.other.vbnet", "match": "(?i)(?\u003c![.!])(False|Finally|For|Friend|From(?=\\s+{)|From|Function)\\b" }, "keyword-g": { "name": "keyword.other.vbnet", "match": "(?i)(?\u003c![.!])(Get|GetType|Global|GoSub|GoTo|Group\\s+By|Group)\\b" }, "keyword-h": { "name": "keyword.other.vbnet", "match": "(?i)(?\u003c![.!])(Handles)\\b" }, "keyword-i": { "name": "keyword.other.vbnet", "match": "(?i)(?\u003c![.!])(If|Implements|Imports|In|(?\u003c=Option)\\s+Infer|Inherits|Integer|Interface|Into|Is|IsNot|Iterator(?=\\s+(Function|Property)))\\b" }, "keyword-j": { "name": "keyword.other.vbnet", "match": "(?i)(?\u003c![.!])(Join)\\b" }, "keyword-k": { "name": "keyword.other.vbnet", "match": "(?i)(?\u003c![.!])(Key)\\b" }, "keyword-l": { "name": "keyword.other.vbnet", "match": "(?i)(?\u003c![.!])(Let|Lib|Like|Long|Loop)\\b" }, "keyword-m": { "name": "keyword.other.vbnet", "match": "(?i)(?\u003c![.!])(Me|Mod|Module|MustInherit|MustOverride|MyBase|MyClass)\\b" }, "keyword-n": { "name": "keyword.other.vbnet", "match": "(?i)(?\u003c![.!])(NameOf|Namespace|Narrowing|New|Next|Not|Nothing|NotInheritable|NotOverridable)\\b" }, "keyword-o": { "name": "keyword.other.vbnet", "match": "(?i)(?\u003c![.!])(Object|Of|(?\u003c=Explicit|Infer|Strict)\\s+Off|On|Operator|Option|Optional|Or|Order\\s+By|OrElse|Out|Overloads|Overridable|Overrides)\\b" }, "keyword-p": { "name": "keyword.other.vbnet", "match": "(?i)(?\u003c![.!])(ParamArray|Partial(?=\\s+(Class|Structure|Module|Interface))|Partial(?=\\s+(Class|Structure|Module|Interface|Sub|Public|Private|Protected|Friend|MustInherit|NotInheritable|NotOverrideable|Overridable|Shared))|Preserve|Private|Property|Protected|Public)\\b" }, "keyword-r": { "name": "keyword.other.vbnet", "match": "(?i)(?\u003c![.!])(RaiseEvent|ReadOnly|ReDim|(?\u003c=#|#End\\s)Region|RemoveHandler|Resume|Return)\\b" }, "keyword-s": { "name": "keyword.other.vbnet", "match": "(?i)(?\u003c![.!])(Select|Set|Shadows|Shared|Short|Single|Skip|Static|Step|Stop|(?\u003c=Option)\\s+Strict|String|Structure|Sub|SyncLock)\\b" }, "keyword-t": { "name": "keyword.other.vbnet", "match": "(?i)(?\u003c![.!])(Take|(?\u003c=Compare)\\s+Text|Then|Throw|To|True|Try|TryCast|TypeOf)\\b" }, "keyword-u": { "name": "keyword.other.vbnet", "match": "(?i)(?\u003c![.!])(Unicode|Until|Using)\\b" }, "keyword-v": { "name": "keyword.other.vbnet", "match": "(?i)(?\u003c![.!])(Variant)\\b" }, "keyword-w": { "name": "keyword.other.vbnet", "match": "(?i)(?\u003c![.!])(Wend|When|Where|While|Widening|With|WithEvents|WriteOnly)\\b" }, "keyword-x": { "name": "keyword.other.vbnet", "match": "(?i)(?\u003c![.!])(Xor)\\b" }, "keyword-y": { "name": "keyword.other.vbnet", "match": "(?i)(?\u003c![.!])(Yield)\\b" }, "string-literal": { "name": "string.quoted.double.vbnet", "match": "([\"\\x{201C}\\x{201D}]([^\"\\x{201C}\\x{201D}]|[\"\\x{201C}\\x{201D}]{2})*[\"\\x{201C}\\x{201D}])" }, "symbol": { "name": "variable.other.namespace-alias.vbnet", "match": "(([\u0026*+\\-/\\\\^\u003c=\u003e])|([(){}!#,.:]|((?\u003c= )_(?=\\s$)))|\\?)" } } }