Created
April 23, 2016 22:43
-
-
Save kazemihabib/9a4757af3d9bca1daefbc977148f6ed5 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "TypeScript" | |
scopeName: "source.ts" | |
fileTypes: [ | |
"ts" | |
] | |
uuid: "ef98eb90-bf9b-11e4-bb52-0800200c9a66" | |
patterns: [ | |
{ | |
include: "#expression" | |
} | |
] | |
repository: | |
"var-expr": | |
name: "meta.var.expr.ts" | |
begin: "(?<!\\()\\s*\\b(var|let|const(?!\\s+enum)\\b)" | |
beginCaptures: | |
"1": | |
name: "storage.type.ts" | |
end: "(?=$|;)" | |
patterns: [ | |
{ | |
include: "#var-single-variable" | |
} | |
{ | |
include: "#comment" | |
} | |
] | |
"var-single-variable": | |
name: "meta.var-single-variable.expr.ts" | |
begin: "\\b([a-zA-Z_$][\\w$]*)\\s*(=?)" | |
beginCaptures: | |
"1": | |
name: "variable.ts" | |
end: "(?=$|[;,])" | |
patterns: [ | |
{ | |
include: "#type-annotation" | |
} | |
{ | |
include: "#string" | |
} | |
{ | |
include: "#comment" | |
} | |
{ | |
include: "#expression" | |
} | |
] | |
"control-statement": | |
name: "keyword.control.ts" | |
match: "(?<!\\.)\\b(break|catch|continue|debugger|declare|do|else|finally|for|if|return|switch|throw|try|while|with|super|case|default)\\b" | |
declaration: | |
name: "meta.declaration.ts" | |
patterns: [ | |
{ | |
include: "#function-declaration" | |
} | |
{ | |
include: "#object-declaration" | |
} | |
{ | |
include: "#type-declaration" | |
} | |
{ | |
include: "#enum-declaration" | |
} | |
] | |
"type-declaration": | |
name: "meta.type.declaration.ts" | |
begin: "\\b(type)\\b\\s+([a-zA-Z_$][\\w$]*)\\s*=\\s*" | |
beginCaptures: | |
"1": | |
name: "keyword.other.ts" | |
"2": | |
name: "storage.type.ts" | |
end: "(?=$|[,);>]|var|type|function|class|interface)" | |
patterns: [ | |
{ | |
include: "#type" | |
} | |
] | |
"enum-declaration": | |
name: "meta.enum.declaration.ts" | |
match: "(?:\\b(const)\\s+)?\\b(enum)\\s+([a-zA-Z_$][\\w$]*)" | |
captures: | |
"1": | |
name: "storage.modifier.ts" | |
"2": | |
name: "storage.type.ts" | |
"3": | |
name: "entity.name.class.ts" | |
"object-declaration": | |
name: "meta.declaration.object.ts" | |
begin: "\\b(?:(export)\\s+)?\\b(?:(abstract)\\s+)?\\b(?<!\\.)(class|interface)\\b" | |
beginCaptures: | |
"1": | |
name: "storage.modifier.ts" | |
"2": | |
name: "storage.modifier.ts" | |
"3": | |
name: "storage.type.ts" | |
end: "(?<=\\})" | |
endCaptures: | |
"1": | |
name: "brace.curly.ts" | |
patterns: [ | |
{ | |
include: "#comment" | |
} | |
{ | |
include: "#object-heritage" | |
} | |
{ | |
include: "#object-name" | |
} | |
{ | |
include: "#type-parameters" | |
} | |
{ | |
include: "#object-body" | |
} | |
] | |
"object-name": | |
name: "meta.object.name.ts" | |
match: "[a-zA-Z_$][\\w$]*" | |
captures: | |
"0": | |
name: "entity.name.class.ts" | |
"object-heritage": | |
name: "meta.object.heritage.ts" | |
begin: "(?:\\b(extends|implements))" | |
beginCaptures: | |
"1": | |
name: "keyword.other.ts" | |
end: "(?=\\{)" | |
endCaptures: | |
"1": | |
name: "brace.curly.ts" | |
patterns: [ | |
{ | |
include: "#comment" | |
} | |
{ | |
include: "#object-heritage" | |
} | |
{ | |
include: "#type-parameters" | |
} | |
{ | |
include: "#object-heritage-parent" | |
} | |
] | |
"object-heritage-parent": | |
name: "meta.object.heritage.parent.ts" | |
match: "(?:\\s*([a-zA-Z_$][\\w$]*))" | |
captures: | |
"1": | |
name: "storage.type.ts" | |
"object-body": | |
name: "meta.object.body.ts" | |
begin: "\\{" | |
beginCaptures: | |
"0": | |
name: "meta.brace.curly.ts" | |
end: "\\}" | |
endCaptures: | |
"0": | |
name: "meta.brace.curly.ts" | |
patterns: [ | |
{ | |
include: "#string" | |
} | |
{ | |
include: "#comment" | |
} | |
{ | |
include: "#field-declaration" | |
} | |
{ | |
include: "#method-declaration" | |
} | |
{ | |
include: "#indexer-declaration" | |
} | |
{ | |
include: "#type-annotation" | |
} | |
{ | |
include: "#variable-initializer" | |
} | |
{ | |
include: "#access-modifier" | |
} | |
{ | |
include: "#static-modifier" | |
} | |
{ | |
include: "#property-accessor" | |
} | |
] | |
"type-object": | |
name: "meta.object.type.ts" | |
begin: "\\{" | |
beginCaptures: | |
"0": | |
name: "meta.brace.curly.ts" | |
end: "\\}" | |
endCaptures: | |
"0": | |
name: "meta.brace.curly.ts" | |
patterns: [ | |
{ | |
include: "#comment" | |
} | |
{ | |
include: "#field-declaration" | |
} | |
{ | |
include: "#method-declaration" | |
} | |
{ | |
include: "#indexer-declaration" | |
} | |
{ | |
include: "#type-annotation" | |
} | |
] | |
"field-declaration": | |
name: "meta.field.declaration.ts" | |
begin: "(?<!\\()\\s*((?:\\b[a-zA-Z_$][\\w$]*)|(?:\\'[^']*\\')|(?:\\\"[^\"]*\\\"))\\s*(\\?\\s*)?(?=(=|:))" | |
beginCaptures: | |
"1": | |
name: "variable.ts" | |
"2": | |
name: "keyword.operator.ts" | |
end: "(?=\\}|;|,|$)|(?<=\\})" | |
patterns: [ | |
{ | |
include: "#expression" | |
} | |
] | |
"method-declaration": | |
name: "meta.method.declaration.ts" | |
begin: "\\b(?:(abstract)\\s+)?\\b(?:(public|private|protected)\\s+)?\\b(?:(async)\\s+)?(?:(get|set)\\s+)?(?:(new)|(?:([a-zA-Z_$][\\.\\w$]*)\\s*(\\??)))?\\s*(?=\\(|\\<)" | |
beginCaptures: | |
"1": | |
name: "storage.modifier.ts" | |
"2": | |
name: "storage.modifier.ts" | |
"3": | |
name: "storage.modifier.ts" | |
"4": | |
name: "storage.type.property.ts" | |
"5": | |
name: "keyword.operator.ts" | |
"6": | |
name: "entity.name.function.ts" | |
"7": | |
name: "keyword.operator.ts" | |
end: "(?=\\}|;|,)|(?<=\\})" | |
patterns: [ | |
{ | |
include: "#comment" | |
} | |
{ | |
include: "#type-parameters" | |
} | |
{ | |
include: "#function-type-parameters" | |
} | |
{ | |
include: "#type-annotation" | |
} | |
{ | |
include: "#method-overload-declaration" | |
} | |
{ | |
include: "#decl-block" | |
} | |
] | |
"method-overload-declaration": | |
name: "meta.method.overload.declaration.ts" | |
match: "\\b(?:(abstract)\\s+)?\\b(?:(public|private|protected)\\s+)?\\b(?:(async)\\s+)?(?:(get|set)\\s+)?(?:(new)|(?:([a-zA-Z_$][\\.\\w$]*)\\s*(\\??)))?\\s*(?=\\(|\\<)" | |
captures: | |
"1": | |
name: "storage.modifier.ts" | |
"2": | |
name: "storage.modifier.ts" | |
"3": | |
name: "storage.modifier.ts" | |
"4": | |
name: "storage.type.property.ts" | |
"5": | |
name: "keyword.operator.ts" | |
"6": | |
name: "entity.name.function.ts" | |
"7": | |
name: "keyword.operator.ts" | |
"indexer-declaration": | |
name: "meta.indexer.declaration.ts" | |
begin: "\\[" | |
beginCaptures: | |
"0": | |
name: "meta.brace.square.ts" | |
end: "(\\])\\s*(\\?\\s*)?|$" | |
endCaptures: | |
"1": | |
name: "meta.brace.square.ts" | |
"2": | |
name: "keyword.operator.ts" | |
patterns: [ | |
{ | |
include: "#type-annotation" | |
} | |
{ | |
include: "#indexer-parameter" | |
} | |
{ | |
include: "#expression" | |
} | |
] | |
"indexer-parameter": | |
name: "meta.indexer.parameter.ts" | |
match: "([a-zA-Z_$][\\w$]*)(?=\\:)" | |
captures: | |
"1": | |
name: "variable.parameter.ts" | |
"function-declaration": | |
name: "meta.function.ts" | |
begin: "\\b(?:(export)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s+([a-zA-Z_$][\\w$]*))?\\s*" | |
beginCaptures: | |
"1": | |
name: "storage.modifier.ts" | |
"2": | |
name: "storage.modifier.ts" | |
"3": | |
name: "storage.type.function.ts" | |
"4": | |
name: "entity.name.function.ts" | |
end: "(?=;|\\})|(?<=\\})" | |
patterns: [ | |
{ | |
include: "#comment" | |
} | |
{ | |
include: "#type-parameters" | |
} | |
{ | |
include: "#function-type-parameters" | |
} | |
{ | |
include: "#return-type" | |
} | |
{ | |
include: "#function-overload-declaration" | |
} | |
{ | |
include: "#decl-block" | |
} | |
] | |
"function-overload-declaration": | |
name: "meta.function.overload.ts" | |
match: "\\b(?:(export)\\s+)?(function\\b)(?:\\s+([a-zA-Z_$][\\w$]*))?\\s*" | |
captures: | |
"1": | |
name: "storage.modifier.ts" | |
"2": | |
name: "storage.type.function.ts" | |
"3": | |
name: "entity.name.function.ts" | |
block: | |
name: "meta.block.ts" | |
begin: "\\{" | |
beginCaptures: | |
"0": | |
name: "meta.brace.curly.ts" | |
end: "\\}" | |
endCaptures: | |
"0": | |
name: "meta.brace.curly.ts" | |
patterns: [ | |
{ | |
include: "#object-member" | |
} | |
{ | |
include: "#expression" | |
} | |
] | |
"decl-block": | |
name: "meta.decl.block.ts" | |
begin: "\\{" | |
beginCaptures: | |
"0": | |
name: "meta.brace.curly.ts" | |
end: "\\}" | |
endCaptures: | |
"0": | |
name: "meta.brace.curly.ts" | |
patterns: [ | |
{ | |
include: "#expression" | |
} | |
] | |
"parameter-name": | |
name: "parameter.name.ts" | |
match: "(?:\\s*\\b(public|private|protected)\\b\\s+)?(\\.\\.\\.)?\\s*([a-zA-Z_$][\\w$]*)\\s*(\\??)" | |
captures: | |
"1": | |
name: "storage.modifier.ts" | |
"2": | |
name: "keyword.operator.ts" | |
"3": | |
name: "variable.parameter.ts" | |
"4": | |
name: "keyword.operator.ts" | |
"return-type": | |
name: "meta.return.type.ts" | |
begin: "(?<=\\))\\s*:" | |
end: "(?=$)|(?=\\{|;|//)" | |
patterns: [ | |
{ | |
include: "#type" | |
} | |
] | |
"type-annotation": | |
name: "meta.type.annotation.ts" | |
begin: ":" | |
end: "(?=$|[,);\\}\\]]|//)|(?==[^>])|(?<=[\\}>\\]\\)]|[a-zA-Z_$])\\s*(?=\\{)" | |
patterns: [ | |
{ | |
include: "#type" | |
} | |
{ | |
include: "#string" | |
} | |
{ | |
include: "#comment" | |
} | |
] | |
type: | |
name: "meta.type.ts" | |
patterns: [ | |
{ | |
include: "#type-primitive" | |
} | |
{ | |
include: "#type-parameters" | |
} | |
{ | |
include: "#type-tuple" | |
} | |
{ | |
include: "#type-object" | |
} | |
{ | |
include: "#type-operator" | |
} | |
{ | |
include: "#type-paren-or-function-type-parameters" | |
} | |
{ | |
include: "#type-function-return-type" | |
} | |
{ | |
include: "#type-name" | |
} | |
] | |
"function-type-parameters": | |
name: "meta.function.type.parameter.ts" | |
begin: "\\(" | |
beginCaptures: | |
"0": | |
name: "meta.brace.round.ts" | |
end: "\\)" | |
endCaptures: | |
"0": | |
name: "meta.brace.round.ts" | |
patterns: [ | |
{ | |
include: "#comment" | |
} | |
{ | |
include: "#parameter-name" | |
} | |
{ | |
include: "#type-annotation" | |
} | |
{ | |
include: "#variable-initializer" | |
} | |
] | |
"type-primitive": | |
name: "meta.type.primitive.ts" | |
match: "\\b(string|number|boolean|symbol|any|void)\\b" | |
captures: | |
"1": | |
name: "storage.type.ts" | |
"type-paren-or-function-type-parameters": | |
name: "meta.type.paren.cover.ts" | |
begin: "(?:\\b(new)\\b)?\\s*\\(" | |
beginCaptures: | |
"1": | |
name: "keyword.control.ts" | |
end: "\\)" | |
patterns: [ | |
{ | |
include: "#comment" | |
} | |
{ | |
include: "#type" | |
} | |
{ | |
include: "#function-type-parameters" | |
} | |
] | |
"await-modifier": | |
name: "storage.modifier.ts" | |
match: "await" | |
"type-operator": | |
name: "keyword.operator.type.ts" | |
match: "[.|]" | |
"type-function-return-type": | |
name: "meta.type.function.return.ts" | |
begin: "=>" | |
beginCaptures: | |
"0": | |
name: "keyword.operator.ts" | |
end: "(?=\\s*[,\\)\\{=;>]|//|$)" | |
patterns: [ | |
{ | |
include: "#type" | |
} | |
] | |
"type-tuple": | |
name: "meta.type.tuple.ts" | |
begin: "\\[" | |
beginCaptures: | |
"0": | |
name: "meta.brace.square.ts" | |
end: "\\]" | |
endCaptures: | |
"0": | |
name: "meta.brace.square.ts" | |
patterns: [ | |
{ | |
include: "#type" | |
} | |
{ | |
include: "#comment" | |
} | |
] | |
"type-name": | |
name: "meta.type.name.ts" | |
match: "[a-zA-Z_$][.\\w$]*" | |
captures: | |
"1": | |
name: "entity.name.type.ts" | |
"type-parameters": | |
name: "meta.type.parameters.ts" | |
begin: "([a-zA-Z_$][\\w$]*)?(<)" | |
beginCaptures: | |
"1": | |
name: "entity.name.type.ts" | |
"2": | |
name: "meta.brace.angle.ts" | |
end: "(?=$)|(>)" | |
endCaptures: | |
"2": | |
name: "meta.brace.angle.ts" | |
patterns: [ | |
{ | |
name: "keyword.other.ts" | |
match: "\\b(extends)\\b" | |
} | |
{ | |
include: "#comment" | |
} | |
{ | |
include: "#type" | |
} | |
] | |
"variable-initializer": | |
begin: "(=)" | |
beginCaptures: | |
"1": | |
name: "keyword.operator.ts" | |
end: "(?=$|[,);=])" | |
patterns: [ | |
{ | |
include: "#expression" | |
} | |
] | |
expression: | |
name: "meta.expression.ts" | |
patterns: [ | |
{ | |
comment: "Match ES6 \"import from\" syntax" | |
match: "\\b(import)\\b.*\\b(from)\\b\\s+((['\"]).*\\4)" | |
captures: | |
"1": | |
name: "keyword.other.ts" | |
"2": | |
name: "keyword.other.ts" | |
"3": | |
name: "es6import.path.quoted.string" | |
} | |
{ | |
comment: "Match import = require" | |
match: "\\b(import)\\s+([\\p{L}\\p{Nl}$_][\\p{L}\\p{Nl}$\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\\x{200C}\\x{200D}]*)\\s*=\\s*(require)\\s*\\((.*)\\)" | |
captures: | |
"1": | |
name: "keyword.other.ts" | |
"2": | |
name: "variable.type.ts" | |
"3": | |
name: "keyword.other.ts" | |
"4": | |
name: "require.path.quoted.string" | |
} | |
{ | |
comment: "Match <amd-module" | |
match: "(\\/\\/\\/\\s*<amd-module\\s*name\\s*=)(.*)(\\/>)" | |
captures: | |
"1": | |
name: "keyword.other.ts" | |
"2": | |
name: "amd.path.quoted.string" | |
"3": | |
name: "keyword.other.ts" | |
} | |
{ | |
comment: "Match <amd-dependency" | |
match: "(\\/\\/\\/\\s*<amd-dependency\\s*path\\s*=)(.*)(\\/>)" | |
captures: | |
"1": | |
name: "keyword.other.ts" | |
"2": | |
name: "amd.path.quoted.string" | |
"3": | |
name: "keyword.other.ts" | |
} | |
{ | |
comment: "Match full triple slash reference comments" | |
match: "(\\/\\/\\/\\s*<reference\\s*path\\s*=)(.*)(\\/>)" | |
captures: | |
"1": | |
name: "keyword.other.ts" | |
"2": | |
name: "reference.path.quoted.string" | |
"3": | |
name: "keyword.other.ts" | |
} | |
{ | |
comment: "Match debugger statement" | |
match: "\\b(debugger)\\b" | |
captures: | |
"1": | |
name: "keyword.debugger.ts" | |
} | |
{ | |
include: "#for-in-simple" | |
} | |
{ | |
include: "#string" | |
} | |
{ | |
include: "#regex" | |
} | |
{ | |
include: "#template-html" | |
} | |
{ | |
include: "#template-css" | |
} | |
{ | |
include: "#template" | |
} | |
{ | |
include: "#comment" | |
} | |
{ | |
include: "#literal" | |
} | |
{ | |
include: "#paren-expression" | |
} | |
{ | |
include: "#var-expr" | |
} | |
{ | |
include: "#declaration" | |
} | |
{ | |
include: "#cast" | |
} | |
{ | |
include: "#new-expr" | |
} | |
{ | |
include: "#switch-statement" | |
} | |
{ | |
include: "#block" | |
} | |
{ | |
include: "#expression-operator" | |
} | |
{ | |
include: "#relational-operator" | |
} | |
{ | |
include: "#arithmetic-operator" | |
} | |
{ | |
include: "#logic-operator" | |
} | |
{ | |
include: "#assignment-operator" | |
} | |
{ | |
include: "#storage-keyword" | |
} | |
{ | |
include: "#function-call" | |
} | |
{ | |
include: "#case-clause" | |
} | |
{ | |
include: "#control-statement" | |
} | |
] | |
"switch-expression": | |
name: "switch-expression.expr.ts" | |
begin: "\\b(switch)\\b\\s*\\(" | |
beginCaptures: | |
"1": | |
name: "keyword.operator.ts" | |
end: "\\)" | |
patterns: [ | |
{ | |
include: "#expression" | |
} | |
] | |
"switch-block": | |
name: "switch-block.expr.ts" | |
begin: "{" | |
end: "(?=\\})" | |
patterns: [ | |
{ | |
include: "#expression" | |
} | |
] | |
"case-clause": | |
name: "case-clause.expr.ts" | |
begin: "(?<!\\.)\\b(case|default)\\b" | |
beginCaptures: | |
"1": | |
name: "keyword.control.ts" | |
end: ":" | |
patterns: [ | |
{ | |
include: "#expression" | |
} | |
] | |
"switch-statement": | |
name: "switch-statement.expr.ts" | |
begin: "(?=\\bswitch\\b\\s*\\()" | |
end: "}" | |
patterns: [ | |
{ | |
include: "#switch-expression" | |
} | |
{ | |
include: "#switch-block" | |
} | |
] | |
"for-in-simple": | |
name: "forin.expr.ts" | |
match: "(?<=\\()\\s*\\b(var|let|const)\\s+([a-zA-Z_$][\\w$]*)\\s+(in|of)\\b" | |
captures: | |
"1": | |
name: "storage.type.ts" | |
"3": | |
name: "keyword.operator.ts" | |
"function-call": | |
name: "functioncall.expr.ts" | |
patterns: [ | |
{ | |
include: "#await-modifier" | |
} | |
{ | |
include: "#type-parameters" | |
} | |
{ | |
include: "#paren-expression" | |
} | |
] | |
cast: | |
name: "cast.expr.ts" | |
begin: "(?:(?<=return|throw|yield|await|[=(,:>]))\\s*(<)(?!<?\\=)" | |
beginCaptures: | |
"1": | |
name: "meta.brace.angle.ts" | |
end: ">" | |
endCaptures: | |
"0": | |
name: "meta.brace.angle.ts" | |
patterns: [ | |
{ | |
include: "#type" | |
} | |
] | |
"new-expr": | |
name: "new.expr.ts" | |
begin: "\\b(new)\\b" | |
beginCaptures: | |
"1": | |
name: "keyword.operator.ts" | |
end: "(?=[(;]|$)" | |
patterns: [ | |
{ | |
include: "#type" | |
} | |
{ | |
include: "#comment" | |
} | |
] | |
"object-member": | |
name: "meta.object.member.ts" | |
begin: "[a-zA-Z_$][\\w$]*\\s*:" | |
end: "(?=,|\\})" | |
patterns: [ | |
{ | |
include: "#expression" | |
} | |
] | |
"expression-operator": | |
name: "keyword.operator.ts" | |
match: "=>|\\b(delete|export|import|from|in|instanceof|module|namespace|new|typeof|void|as)\\b" | |
"arithmetic-operator": | |
name: "keyword.operator.arithmetic.ts" | |
match: "\\*|/|\\-\\-|\\-|\\+\\+|\\+|%" | |
"relational-operator": | |
name: "keyword.operator.comparison.ts" | |
match: "===|==|=|!=|!==|<=|>=|<>|<|>" | |
"assignment-operator": | |
name: "keyword.operator.assignment.ts" | |
match: "<<=|>>=|>>>=|\\*=|(?<!\\()/=|%=|\\+=|\\-=|&=|\\^=" | |
"logic-operator": | |
name: "keyword.operator.arithmetic.ts" | |
match: "\\!|&|~|\\||&&|\\|\\|" | |
"storage-keyword": | |
name: "storage.type.ts" | |
match: "\\b(number|boolean|string|any|var|let|function|const)\\b" | |
"paren-expression": | |
begin: "\\(" | |
beginCaptures: | |
"0": | |
name: "meta.brace.paren.ts" | |
end: "\\)" | |
endCaptures: | |
"0": | |
name: "meta.brace.paren.ts" | |
patterns: [ | |
{ | |
include: "#expression" | |
} | |
] | |
"qstring-double": | |
name: "string.double.quoted.ts" | |
begin: "\"" | |
end: "\"|(?=$)" | |
patterns: [ | |
{ | |
include: "#string-character-escape" | |
} | |
] | |
"qstring-single": | |
name: "string.single.quoted.ts" | |
begin: "'" | |
end: "'|(?=$)" | |
patterns: [ | |
{ | |
include: "#string-character-escape" | |
} | |
] | |
regex: | |
name: "string.quoted.regex.ts" | |
begin: "(?<=[=(:,\\[]|^|return|&&|\\|\\||!)\\s*(/)(?![/*+{}?])" | |
end: "$|(/)[igm]*" | |
patterns: [ | |
{ | |
name: "constant.character.escape.ts" | |
match: "\\\\." | |
} | |
{ | |
name: "constant.character.class.ts" | |
match: "\\[(\\\\\\]|[^\\]])*\\]" | |
} | |
] | |
string: | |
name: "string.quoted.ts" | |
patterns: [ | |
{ | |
include: "#qstring-single" | |
} | |
{ | |
include: "#qstring-double" | |
} | |
] | |
"template-html": | |
name: "meta.template.html.ts" | |
begin: "`<!---->" | |
beginCaptures: | |
"0": | |
name: "string.quoted.template.ts" | |
end:"`" | |
endCaptures: | |
"0": | |
name: "string.quoted.template.ts" | |
patterns: [ | |
{ | |
include: "text.html.basic" | |
} | |
] | |
"template-css": | |
name: "meta.template.css.ts" | |
begin: "`/\\*\\*/" | |
beginCaptures: | |
"0": | |
name: "string.quoted.template.ts" | |
end:"`" | |
endCaptures: | |
"0": | |
name: "string.quoted.template.ts" | |
patterns: [ | |
{ | |
include: "source.css" | |
} | |
] | |
template: | |
name: "meta.template.ts" | |
begin: "`" | |
beginCaptures: | |
"0": | |
name: "string.quoted.template.ts" | |
end: "`" | |
endCaptures: | |
"0": | |
name: "string.quoted.template.ts" | |
patterns: [ | |
{ | |
include: "#template-substitution-element" | |
} | |
{ | |
include: "#template-string-contents" | |
} | |
] | |
"template-string-contents": | |
name: "string.quoted.template.ts" | |
begin: ".*?" | |
end: "(?=(\\$\\{|`))" | |
patterns: [ | |
{ | |
include: "#string-character-escape" | |
} | |
] | |
"string-character-escape": | |
name: "constant.character.escape" | |
match: "\\\\(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
"template-substitution-element": | |
name: "template.element.ts" | |
begin: "\\$\\{" | |
beginCaptures: | |
"0": | |
name: "keyword.operator.ts" | |
end: "\\}" | |
endCaptures: | |
"0": | |
name: "keyword.operator.ts" | |
patterns: [ | |
{ | |
include: "#expression" | |
} | |
] | |
comment: | |
name: "comment.ts" | |
patterns: [ | |
{ | |
include: "#comment-block-doc" | |
} | |
{ | |
include: "#comment-block" | |
} | |
{ | |
include: "#comment-line" | |
} | |
] | |
"comment-block-doc": | |
name: "comment.block.documentation.ts" | |
begin: "/\\*\\*(?!/)" | |
end: "\\*/" | |
"comment-block": | |
name: "comment.block.ts" | |
begin: "/\\*" | |
end: "\\*/" | |
"comment-line": | |
name: "comment.line.ts" | |
match: "(//).*$\\n?" | |
literal: | |
name: "literal.ts" | |
patterns: [ | |
{ | |
include: "#numeric-literal" | |
} | |
{ | |
include: "#boolean-literal" | |
} | |
{ | |
include: "#null-literal" | |
} | |
{ | |
include: "#undefined-literal" | |
} | |
{ | |
include: "#array-literal" | |
} | |
{ | |
include: "#this-literal" | |
} | |
] | |
"array-literal": | |
name: "meta.array.literal.ts" | |
begin: "\\[" | |
beginCaptures: | |
"0": | |
name: "meta.brace.square.ts" | |
end: "\\]" | |
endCaptures: | |
"0": | |
name: "meta.brace.square.ts" | |
patterns: [ | |
{ | |
include: "#expression" | |
} | |
] | |
"numeric-literal": | |
name: "constant.numeric.ts" | |
match: "\\b(?<=[^$])((0(x|X)[0-9a-fA-F]+)|([0-9]+(\\.[0-9]+)?))\\b" | |
"boolean-literal": | |
name: "constant.language.boolean.ts" | |
match: "\\b(false|true)\\b" | |
"null-literal": | |
name: "constant.language.null.ts" | |
match: "\\b(null)\\b" | |
"this-literal": | |
name: "constant.language.this.ts" | |
match: "\\b(this)\\b" | |
"undefined-literal": | |
name: "constant.language.ts" | |
match: "\\b(undefined)\\b" | |
"access-modifier": | |
name: "storage.modifier.ts" | |
match: "\\b(public|protected|private)\\b" | |
"static-modifier": | |
name: "keyword.other.ts" | |
match: "\\b(static)\\b" | |
"property-accessor": | |
name: "storage.type.property.ts" | |
match: "\\b(get|set)\\b" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment