{ "name": "Find Refs", "scopeName": "text.find-refs", "uuid": "de594c8b-2688-48c1-bc73-b5c935e408b8", "patterns": [ { "include": "#filename" }, { "include": "#header" }, { "include": "#footer" }, { "include": "#reference" }, { "include": "#line-with-match" } ], "repository": { "filename": { "match": "^([^ ].*:)$", "captures": { "1": { "name": "entity.name.filename.find-refs" } } }, "footer": { "name": "text.find-refs", "match": "^[0-9]+ matches in [0-9+] files\\s*$" }, "header": { "name": "text.find-refs", "match": "^References to .*$" }, "line-with-match": { "begin": "^ +([0-9]+):", "end": "$", "beginCaptures": { "1": { "name": "constant.numeric.line-number.match.find-refs" } }, "patterns": [ { "include": "#single-line-ts" } ] }, "single-line-ts": { "name": "meta.ts.find-refs", "patterns": [ { "include": "#expression" } ] }, "var-expr": { "name": "meta.var.expr.ts", "begin": "(?<!\\()\\s*\\b(var|let|const(?!\\s+enum))\\s+([a-zA-Z_$][\\w$]*)", "beginCaptures": { "1": { "name": "storage.type.ts" }, "2": { "name": "variable.ts" } }, "end": "$|(?=[;=\\}\\{])|(?<=\\})", "patterns": [ { "include": "#type-annotation" } ] }, "control-statement": { "name": "keyword.control.ts", "match": "\\b(break|catch|continue|declare|do|else|finally|for|if|return|switch|throw|try|while)\\b" }, "switch-case": { "name": "case.expr.ts", "begin": "\\b(case|default)\\b", "beginCaptures": { "1": { "name": "keyword.control.ts" } }, "end": ":", "patterns": [ { "include": "#expression" } ] }, "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(class|interface)\\b(?:\\s+([a-zA-Z_$][\\w$]*))", "beginCaptures": { "1": { "name": "storage.modifier.ts" }, "2": { "name": "storage.type.ts" }, "3": { "name": "entity.name.class.ts" } }, "end": "$|(?=\\})", "endCaptures": { "1": { "name": "brace.curly.ts" } }, "patterns": [ { "include": "#type-parameters" }, { "include": "#object-heritage" }, { "include": "#object-body" }, { "include": "#comment" } ] }, "object-heritage": { "name": "meta.object.heritage.ts", "match": "(?:\\b(extends|implements)\\b|,)(?:\\s+([a-zA-Z_$][.\\w$]*))", "captures": { "1": { "name": "storage.modifier.ts" }, "2": { "name": "storage.type.ts" } } }, "object-body": { "name": "meta.object.body.ts", "begin": "\\{", "end": "$|(?=\\})", "patterns": [ { "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" } ] }, "object-type": { "name": "meta.object.type.ts", "begin": "\\{", "end": "$|\\}", "patterns": [ { "include": "#comment" }, { "include": "#field-declaration" }, { "include": "#method-declaration-no-body" }, { "include": "#indexer-declaration" }, { "include": "#type-annotation" } ] }, "field-declaration": { "name": "meta.field.declaration.ts", "match": "\\b([a-zA-Z_$][\\w$]*)\\s*(\\?\\s*)?(?=(=|:))", "captures": { "1": { "name": "variable.ts" }, "2": { "name": "keyword.operator.ts" } } }, "method-declaration": { "name": "meta.method.declaration.ts", "begin": "\\b(?:(get|set)\\s+)?\\[?([a-zA-Z_$][\\.\\w$]*)\\s*\\]?\\s*(\\??)\\s*(?=\\()", "beginCaptures": { "1": { "name": "storage.type.property.ts" }, "2": { "name": "entity.name.function.ts" }, "3": { "name": "keyword.operator.ts" } }, "end": "$|\\}|[;,]", "patterns": [ { "include": "#comment" }, { "include": "#function-parameters" }, { "include": "#type-annotation" }, { "include": "#decl-block" } ] }, "method-declaration-no-body": { "name": "meta.method.declaration.ts", "begin": "\\b(?:(get|set)\\s+)?\\[?([a-zA-Z_$][\\.\\w$]*)\\s*\\]?\\s*(\\??)\\s*(?=\\()", "beginCaptures": { "1": { "name": "storage.type.property.ts" }, "2": { "name": "entity.name.function.ts" }, "3": { "name": "keyword.operator.ts" } }, "end": "$|(?=\\})|[;,]", "patterns": [ { "include": "#comment" }, { "include": "#function-parameters" }, { "include": "#type-annotation" }, { "include": "#decl-block" } ] }, "indexer-declaration": { "name": "meta.indexer.declaration.ts", "begin": "\\[", "end": "\\]\\s*(\\?\\s*)?|$", "endCaptures": { "1": { "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(function)\\b(?:\\s+([a-zA-Z_$][\\w$]*))?\\s*", "beginCaptures": { "1": { "name": "storage.type.function.ts" }, "2": { "name": "entity.name.function.ts" } }, "end": "$|(?=\\}|;)", "patterns": [ { "include": "#comment" }, { "include": "#type-parameters" }, { "include": "#function-parameters" }, { "include": "#return-type" }, { "include": "#decl-block" } ] }, "block": { "name": "meta.block.ts", "begin": "\\{", "end": "$|\\}", "patterns": [ { "include": "#expression" }, { "include": "#object-member" } ] }, "decl-block": { "name": "meta.decl.block.ts", "begin": "\\{", "end": "$|(?=\\})", "patterns": [ { "include": "#expression" } ] }, "function-parameters": { "name": "meta.function-parameters.ts", "begin": "\\(", "end": "$|\\)", "patterns": [ { "include": "#comment" }, { "include": "#parameter-name" }, { "include": "#type-annotation" }, { "include": "#variable-initializer" } ] }, "function-type-parameters": { "name": "meta.function.type.ts", "begin": "\\(", "end": "$|\\)", "patterns": [ { "include": "#comment" }, { "include": "#parameter-name" }, { "include": "#type-annotation" }, { "include": "#variable-initializer" } ] }, "parameter-name": { "name": "parameter.name.ts", "match": "(?:\\s*\\b(public|private)\\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": "(?<=\\)):", "end": "$|(?=\\{|;|//)", "patterns": [ { "include": "#type" } ] }, "type-annotation": { "name": "meta.type.annotation.ts", "begin": ":", "end": "(?=[,);}\\[\\]])|(?==[^>])|(?<=[a-z]|>)\\s*(?=\\{|$|//)", "patterns": [ { "include": "#type" }, { "include": "#comment" } ] }, "type": { "name": "meta.type.ts", "patterns": [ { "include": "#type-name" }, { "include": "#type-parameters" }, { "include": "#type-union" }, { "include": "#object-type" }, { "include": "#function-type-parameters" }, { "include": "#function-type-return-type" } ] }, "function-type-return-type": { "name": "meta.function.type.return.ts", "begin": "=>", "end": "$|(?=[,\\){]|//)", "patterns": [ { "include": "#type" } ] }, "type-union": { "name": "meta.type.union.ts", "begin": "(\\|)", "beginCaptures": { "1": { "name": "keyword.operator.ts" } }, "end": "$|([a-zA-Z_$][.\\w$]*)", "endCaptures": { "1": { "name": "storage.type.ts" } }, "patterns": [ { "include": "#comment" } ] }, "type-name": { "name": "storage.type.ts", "match": "[a-zA-Z_$][.\\w$]*" }, "type-parameters": { "name": "meta.type.parameters.ts", "begin": "<", "end": "$|(?=var|type|function|class|interface)|>", "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": [ { "include": "#string" }, { "include": "#regex" }, { "include": "#template" }, { "include": "#comment" }, { "include": "#literal" }, { "include": "#paren-expression" }, { "include": "#var-expr" }, { "include": "#declaration" }, { "include": "#cast" }, { "include": "#new-expr" }, { "include": "#block" }, { "include": "#expression-operator" }, { "include": "#relational-operator" }, { "include": "#arithmetic-operator" }, { "include": "#logic-operator" }, { "include": "#assignment-operator" }, { "include": "#storage-keyword" }, { "include": "#control-statement" }, { "include": "#switch-case" }, { "include": "#for-in-simple" } ] }, "for-in-simple": { "name": "forin.expr.ts", "match": "(?<=\\()\\s*\\b(var|let)\\s+([a-zA-Z_$][\\w$]*)\\s+(in)\\b", "captures": { "1": { "name": "storage.type.ts" }, "3": { "name": "keyword.operator.ts" } } }, "cast": { "name": "cast.expr.ts", "match": "<\\s*([a-zA-Z_$][.\\w$]*)\\s*(?:<([a-zA-Z_$][.\\w$]*)>)?\\s*(\\[\\])*\\s*>", "captures": { "1": { "name": "storage.type.ts" }, "2": { "name": "storage.type.ts" } } }, "new-expr": { "name": "new.expr.ts", "match": "\\b(new)\\b\\s*([a-zA-Z_$][.\\w$]*)", "captures": { "1": { "name": "keyword.operator.ts" }, "2": { "name": "storage.type.ts" } } }, "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|in|instanceof|module|new|typeof|void)\\b" }, "arithmetic-operator": { "name": "keyword.operator.ts", "match": "\\*|/|\\-\\-|\\-|\\+\\+|\\+|%" }, "relational-operator": { "name": "keyword.operator.ts", "match": "===|==|=|!=|!==|<=|>=|<>|<|>" }, "assignment-operator": { "name": "keyword.operator.ts", "match": "<<=|>>=|>>>=|\\*=|(?<!\\()/=|%=|\\+=|\\-=|&=|\\^=" }, "logic-operator": { "name": "keyword.operator.ts", "match": "\\!|&|~|\\||&&|\\|\\|" }, "storage-keyword": { "name": "storage.type.ts", "match": "\\b(number|boolean|string)\\b" }, "paren-expression": { "begin": "\\(", "beginCaptures": { "0": { "name": "brace.paren.ts" } }, "end": "$|\\)", "endCaptures": { "0": { "name": "brace.paren.ts" } }, "patterns": [ { "include": "#expression" } ] }, "qstring-double": { "name": "string.double.ts", "begin": "\"", "end": "\"|(?=$)", "patterns": [ { "include": "#string-character-escape" } ] }, "qstring-single": { "name": "string.single.ts", "begin": "'", "end": "'|(?=$)", "patterns": [ { "include": "#string-character-escape" } ] }, "regex": { "name": "string.regex.ts", "begin": "(?<=[=(:,\\[]|^|return|&&|\\|\\||!)\\s*(/)(?![/*+{}?])", "end": "$|(/)[igm]*", "patterns": [ { "name": "constant.character.escape.ts", "match": "\\\\." }, { "name": "constant.character.class.ts", "match": "\\[(\\\\\\]|[^\\]])*\\]" } ] }, "string": { "name": "string.ts", "patterns": [ { "include": "#qstring-single" }, { "include": "#qstring-double" } ] }, "template": { "name": "meta.template.ts", "begin": "`", "beginCaptures": { "0": { "name": "string.template.ts" } }, "end": "$|`", "endCaptures": { "0": { "name": "string.template.ts" } }, "patterns": [ { "include": "#template-substitution-element" }, { "include": "#template-string-contents" } ] }, "template-string-contents": { "name": "string.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" } ] }, "array-literal": { "name": "meta.array.literal.ts", "begin": "\\[", "beginCaptures": { "0": { "name": "brace.square.ts" } }, "end": "$|\\]", "endCaptures": { "0": { "name": "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" }, "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" } } }